Мне кажется, что ваш код распечатывает каждую строку file_1.txt, если только (а) строка не содержит name
или (b) первые два столбца строки совпадают с предыдущей строкой, содержащей name
. В этом случае попробуйте:
$ awk '/name/{bad[$1,$2];next} !(($1,$2) in bad)' file_1.txt
150 300
150 300
150 250
150 250
/ name / {bad [$ 1, $ 2]; next}
Если текущая строка содержит name
, мы добавляем запись в ассоциативный массив плохой
под ключ первых двух столбцов. Затем мы пропускаем остальные команды и переходим к следующей строке
, чтобы начать заново.
! (($ 1, $ 2) неверно)
Если первые два столбца текущей строки, $ 1, $ 2
являются , а не среди ключей bad
, затем выведите эту строку.