2

У меня есть текстовый файл. Каждая строка содержит строку. Некоторые строки повторяются. Я хочу удалить повтор, но я хочу сохранить первое вхождение. Например:

line1
line1
line2
line3
line4
line3
line5

Должно быть

line1
line2
line3
line4
line5

Я пробовал: sort file1 | uniq -u > file2 но это не помогло. Он удалил все повторяющиеся строки, пока я хочу, чтобы присутствовало первое вхождение. Мне не нужно сортировать. Просто удалите точное повторение строки в новой строке, оставив все как есть.

2 ответа2

3

Если вы разрешите сортировку в любом случае, это будет работать:

sort | uniq

-u был источником твоих неприятностей, потому что (от man 1 uniq):

-u --unique
печатать только уникальные строки

пока по умолчанию:

Без опций совпадающие строки объединяются с первым вхождением.

0

Специализированные утилиты, которые печатают уникальные строки без сортировки:

  1. uq.

  2. unique.

Смотрите также: Как получить только уникальные результаты без сортировки данных? и Unix: удаление повторяющихся строк без сортировки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .