] С помощью awk
:
awk -F '\\|' '$3==""' file.txt
-F '\\ |'
устанавливает литерный разделитель полей |
$ 3 == ""
проверяет, является ли третье поле null, в таком случае запись выводится (по умолчанию)
Пример:
% cat file.txt
A|B|C|D|E
A|B|C|D|E
A|B||D|E
% awk -F '\\|' '$3==""' file.txt
A|B||D|E
На самом деле экранирование не требуется, поскольку, когда в качестве разделителя полей используется только один символ, он вводится буквально; Спасибо @ Stéphane Chazelas:
awk -F '|' '$3==""' file.txt