Вот как это можно сделать с awk
: используйте переменную, чтобы подсчитать, сколько раз вы видели одну и ту же пару из 3-го и 5-го полей, и распечатайте имя файла, если вы уже видели эту конкретную пару.
С этими именами файлов в файле с именем input это будет выглядеть так:
$ awk -F. '{if (dups[$3$5]++) print $0}' input
Если ваши имена файлов могут содержать пробелы или другие забавные символы, используйте find
вместо ls
для вывода списка их можно указать примерно так:
$ find . -name 'PAT1.*.DAT' -print0 | \
awk -F. 'BEGIN{RS="\0"} {if (dups[$3$5]++) print $0}'
В качестве дополнительного преимущества вы можете проверить переменную dups
в блоке END
, чтобы распечатать, сколько пар каждой пары вы видели во входных данных.