2014-02-27 3 views
3

Я могу удалить повторяющиеся строки в файлах, используя следующие команды: 1) sort -u и uniq команды. возможно ли использование sed или awk?Как удалить повторяющиеся строки в файле в unix?

+2

, если у вас есть своего рода и уник, почему вы хотите использовать СЭД или AWK? – Skriptotajs

+0

Ну, возможно, это так, поскольку, насколько я помню, оба изучают полные языки. Вопрос в том, что вы использовали бы их, как указано @Skriptotajs. – Rubens

ответ

9

Там есть «известный» AWK идиома:

awk '!seen[$0]++' file 

Он должен сохранить уникальные строки в памяти, но она сохраняет порядок файлов.

+0

Это выглядит потрясающе, но почему-то это не работает для меня на macOS Sierra. – mherzl

+0

только для небольших файлов, если файл больше, чем ram + swap - не работает –

+0

Для некоторого определения «маленький». Измерено в GB –

0

После сортировки мы можем использовать эту команду SED

sed -E '$!N; /^(.*)\n\1$/!P; D' filename 

Если файл несортированный, то вы можете использовать с комбинацией команды.

sort filename | sed -E '$!N; /^\(.*\)\n\1$/!P; D' 
0

рода и уник них только необходимость удаления дубликатов кошачью файла | сортировать | уник >> filename2

, если его файл состоит из числа используют сорт -n

Смежные вопросы