Используйте AWK, чтобы записать переменную в строку номер 5 после двоеточия - PullRequest
0 голосов
/ 09 июля 2019

У меня есть файл, который содержит переменные, которые выглядят следующим образом:

Favorite color of John:Blue
Favorite color of Cindy:Red
Favorite color of Greg:Orange
Favorite color of Gary:Red
Favorite color of Patty:White
Favorite color of Meg:Purple
Favorite color of Jason:Pink

Как написать команду AWK, чтобы изменить текст после двоеточия, указав номер строки?Я не могу основать это количество символов или фиксированный пробел, потому что строки различаются по длине.Двоеточие - это статический разделитель между объектом и переменной.

Пока я могу получить строку, выполнив это: awk 'NR == 5' variables.txt |awk -F ":" '{print $ 2}' Он даже отобразит существующую переменную.Но как бы я изменил этот текст на слово «зеленый»?

1 Ответ

2 голосов
/ 09 июля 2019

Объедините два вызова awk в один:

awk -F: -v OFS=: 'NR==5 {$2 = "Green"} {print}' variables.txt

Обратите внимание, что вам нужно установить оба поля ввода input и output : при назначениив поле ($2 = ...), тогда текущая запись ($0) переписывается с использованием переменной OFS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...