Вот POSIX-совместимых awk
альтернатива GNU специфичной uniq -D
:
awk '++seen[$0] == 2; seen[$0] >= 2' file
Это оказалось просто короче переформулировкой James Brown's helpful answer.
В отличие от uniq
, эта команда не строго требуют дубликатами быть сгруппированы, но порядок вывода будет только предсказуемы, если они есть.
То есть, если дубликаты не группируются, порядок вывода определяется относительной упорядоченности 2- экземпляров в каждом наборе дублей, и в каждом наборе 1-й и 2-й экземпляры будут напечатаны вместе.
Для несортированный (разгруппировать) данные (и если сохранение порядка ввода также важно), рассмотреть следующие вопросы:
Если числа '1,3,1,3' являются порядком вывода или вы можете обрабатывать' 1,1,3,3, '? –
@James Brown файл уже отсортирован. – user200340