Я сталкиваюсь с проблемой при попытке заменить первой строкой использования текстового файла awk
команда в Unix.
Я использую этот синтаксис:
awk '{ (FS=OFS=""); if($19=="2") sub($88,"4");print $0 }' input.txt>output.txt
эта команда не редактирует первую строку текстового файла. какова причина позади этого?
Трудно понять то, что Вы пытаетесь обойтись без примера своего входа и ожидаемого вывода (в частности, sub($88,"4")
сомнительные взгляды - первый аргумент sub
должно быть регулярное выражение).
Однако принятие Вас хочет пустое FS
чтобы быть примененными к первой записи (строка) Вашего входа, затем необходимо установить его, прежде чем первая запись будет проанализирована - использующий a BEGIN
правило. Например, выдержать сравнение
$ printf '123\n456\n' | awk '{FS=OFS=""; print $2}'
5
по сравнению с
$ printf '123\n456\n' | awk 'BEGIN{FS=OFS=""} {print $2}'
2
5