Удаление повторяющихся записей в текстовом файле

Я делаю некоторую сортировку с помощью команды uniq -d . это не дает мне желаемых результатов.

Мой файл похож:

 >TCONS_00000066 174 206 33 >TCONS_00000066 210 281 72 >TCONS_00000066 227 316 90 >TCONS_00000066 285 338 54 >TCONS_00000066 335 373 39 >TCONS_00000066 342 377 36 >TCONS_00006042 493 552 60 >TCONS_00006042 562 606 45 >TCONS_00006042 630 686 57 >TCONS_00006042 622 699 78 >TCONS_00006042 614 724 111 >TCONS_00006042 696 767 72 

Я хочу удалить дубликаты в столбце 1

вывод:

  >TCONS_00000066 >TCONS_00006042 

но я получаю пустой файл каждый раз, когда я делаю

uniq -d file> newfile

Есть ли другой путь?

  • Поиск и удаление текста в файлах из исходного файла
  • Обработка текста - поиск текста до / после заданного слова
  • Удаление специальных символов из столбца в файле разделителя труб - общий
  • как я могу рассчитывать транзакции на основе даты и времени
  • Самый быстрый и эффективный способ удаления строк, содержащих строки (строки, перечисленные в другом текстовом файле)
  • Как извлечь только буквенно-цифровые символы из заданного текстового файла и распечатать их?
  • Как удалить определенный символ после определенного слова
  • Удаление символов между | трубами |
  • 3 Solutions collect form web for “Удаление повторяющихся записей в текстовом файле”

    Вы можете использовать awk:

     awk '!x[$1]++ { print $1 }' file 

    uniq -d перечисляет только дублированные строки из своего ввода; поскольку ваш файл не содержит повторяющихся строк (рассматривается полностью), он ничего не выводит.

    Чтобы получить результат, вам нужно извлечь первый столбец и отфильтровать его:

     cut -d\ -f1 file | uniq 

    если ваш файл отсортирован ( uniq только фильтрует дубликаты соседних строк); в противном случае

     cut -d\ -f1 file | sort -u 

    Или вы можете сделать это с awk как указано taliezin , с небольшим вариантом, чтобы выводить только первый столбец:

     awk '!x[$1]++ { print $1 }' file 

    Uniq не сортирует и не разделяет остальную часть строки. uniq -d показывает только дублированные строки, которые не совпадают с отображением каждой строки один раз (т. е. с -d она должна быть там дважды и последовательно показана)

    Сначала разрежьте неинтересные столбцы, затем отсортируйте, а затем найдите уникальные элементы:

     cut -d ' ' -f 1 your_file | sort | uniq 
    Linux и Unix - лучшая ОС в мире.