awk управляют проблемой

Я сталкиваюсь с проблемой при попытке заменить первой строкой использования текстового файла awk команда в Unix.

Я использую этот синтаксис:

awk '{ (FS=OFS=""); if($19=="2") sub($88,"4");print $0 }' input.txt>output.txt

эта команда не редактирует первую строку текстового файла. какова причина позади этого?

0
задан 30 April 2017 в 06:20

1 ответ

Трудно понять то, что Вы пытаетесь обойтись без примера своего входа и ожидаемого вывода (в частности, 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
0
ответ дан 30 April 2017 в 16:20

Другие вопросы по тегам:

Похожие вопросы: