Я пытаюсь использовать GAWK из CYGWIN для обработки CSV-файла. Pass 1 находит максимальное значение, а pass 2 печатает записи, соответствующие максимальному значению. Я использую файл .awk в качестве входных данных. Когда я использую текст в руководстве, он совпадает с обоими проходами. Я могу использовать форму IF как обходной путь, но это заставляет меня использовать IF внутри каждого совпадения шаблонов, что является своего рода болью. Любая идея, что я делаю неправильно?Как использовать несколько проходов с gawk?
Вот мой .awk файл:
pass == 1
{
print "pass1 is", pass;
}
pass == 2
{
if(pass == 2)
print "pass2 is", pass;
}
Вот мой вывод (входной файл просто «привет):
hello
pass1 is 1
pass1 is 2
hello
pass2 is 2
Вот моя командная строка:
gawk -F , -f test.awk pass=1 x.txt pass=2 x.txt
Я d оценить любую помощь.
FYI GNU awk имеет переменную с именем 'ARGIND', которая делает ваши переменные' pass' избыточными. –