Я использую Win7 с Cygwin. У меня есть одна строка, которая будет работать для определения совпадений в PAIR столбцов, но когда я пытаюсь ввести дополнительные столбцы (то есть> 2), я не могу заставить его работать. Так что у меня работает следующее:
gawk -F "^" '{ if ($3 == $7) print "0"; else print $3,$7; }' infile.txt > outfile.txt
Однако, когда я добавляю в другую пару столбцов, я получаю синтаксические ошибки:
gawk -F "^" '{ if ($3 == $7 || $3 == $11) print "0"; else print $3,$7,$11; }' infile.txt > outfile.txt
Так что с командой что-то не так, но сообщения об ошибках мне не очень полезны. Когда я заменяю "&&" на "||" Я также получаю сообщения об ошибках ("неожиданный перевод строки или конец строки" сразу после первых «$ 7», а также «$ 3 не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл»).
Итак, вот пример входного файла, содержащего три строки, с «^» в качестве разделителя столбцов:
paris^london^new york^paris^rome^paris
paris^london^munich^paris^rome^paris
paris^london^munich^berlin^rome^paris
Я хочу видеть, соответствуют ли друг другу столбцы 1, 4 и 6 в каждой строке файла. Таким образом, в этом случае строка 1 - "да", строка 2 - "да", а строка 3 - "нет". Таким образом, вывод должен показывать либо "0" для "да", либо повторять всю строку для "нет". Таким образом, вывод будет:
0
0
paris^london^munich^berlin^rome^paris
Есть идеи ?