Вам необходимо использовать переменную NF
(количество полей) для управления действиями, например, в следующей расшифровке:
$ echo '0333 foo
> bar
> 23243 qux' | awk 'NF==2{print}{}'
0333 foo
23243 qux
Это напечатает строку, если число полей равно двум, иначе это ничего не будет делать. Причина, по которой у меня есть (на первый взгляд) странная конструкция NF==2{print}{}
, заключается в том, что некоторые реализации awk
будут печатать по умолчанию, если для строки не найдены правила Пустая команда {}
гарантирует, что этого не произойдет.
Если вам повезло иметь одного из тех, кто этого не делает, вы можете обойтись без:
awk 'NF==2'
, но первое решение, приведенное выше, будет работать в обоих случаях.