Как разобрать строку и заменить содержимое N-го столбца? - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть такой файл:

1|somename|gender|location
2|red|light|10|34|90||100
2|green|dark||44|9|1|

В основном это файл с разделителями |, первая строка которого содержит 4 столбца, а строки 2 и 3 - 8 столбцов.

Я хочу написать команду sed или awk вместо столбца Nth или строки Xth.Например, замените 1-й столбец строки 1 или замените 3-й столбец строки 1 или замените 4-й столбец строки 2 и т. Д.

1 Ответ

0 голосов
/ 18 декабря 2018

Не могли бы вы попробовать следующее.

awk 'BEGIN{FS=OFS"|"} FNR==1{$3="NEW_VAL"} 1' Input_file

Или сделать так, чтобы номер строки и номер столбца передавались в качестве переменной, используйте следующее (где вы можете просто изменить значения переменных, и это должно работать для новых значений)

awk -v line=1 -v column=3 'BEGIN{FS=OFS="|"} FNR==line{$column="NEW_VAL"} 1' Input_file

Если вы хотите сохранить выходные данные в сам файл Input_file, добавьте > temp_file && mv temp_file Input_file к вышеприведенным кодам.

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