Для gawk, как установить FS и RS в той же команде, что и скрипт awk? - PullRequest
0 голосов
/ 14 апреля 2019

У меня есть команда awk, которая возвращает дубликаты во входном потоке с

awk '{a[$0]++}END{for (i in a)if (a[i]>1)print i;}'

Однако я хочу изменить символы разделителя полей и символы разделителя записи, прежде чем я это сделаю. Для этого я использую команду

FS='\n' RS='\n\n'

И все же у меня проблемы с этим. Есть ли способ эффективно объединить эти две команды в одну? Трубопроводы друг к другу тоже не работают.

1 Ответ

1 голос
/ 14 апреля 2019

действие правила BEGIN выполняется перед чтением любого ввода.

awk 'BEGIN{FS="\n";RS="\n\n"}{a[$0]++}END{for (i in a)if (a[i]>1)print i;}'

или вы можете указать их, используя параметры командной строки, такие как:

awk -F '\n' -v RS='\n\n' '{a[$0]++}END{for (i in a)if (a[i]>1)print i;}'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...