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

Я делаю некоторую сортировку с помощью команды 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 
  • Получение источника как Flatfile и удаление возврата каретки и \ n ... специальные символы?
  • Печать строк в файле из соответствия для соответствия
  • Сочетание текста по сплошным линиям с ключом?
  • Объединение строк в одну строку
  • Есть ли заклинание командной строки для удаления столбца в CSV-файле?
  • Случайное изменение места в строке с ограничениями
  • Как я могу извлечь определенную строку из файла?
  • Как слить весь файл в другую папку в один файл и добавить новую строку
  • Как найти строку в файлеA, выбрать текст из этой строки и заменить строку на fileB?
  • Как вырезать конец текстового файла по указанной строке
  • конвертировать шестнадцатеричные в двоичные
  • Interesting Posts

    Как установить CentOS 7 поверх Debian jessie удаленно?

    Помогите получить mtrack для работы в Macbook Pro Retina с Ubuntu 14.04

    Застрял в сером экране после новой установки Kali Linux 2.0

    Сменить строки в текстовом файле только там, где содержатся строки с использованием sed или ed?

    xf86EnableIOPorts: не удалось установить IOPL для ввода-вывода (операция не разрешена)

    ps печатает до 4096 символов командной строки любого процесса

    Что означает стек в связи с процессом?

    Файл ядра Linux не создан

    Btrfs: доступное пространство не используется после перехода с RAID1 на RAID6

    Странное сообщение об ошибке при установке CentOS 6.5 относительно диска, содержащего метаданные BIOS RAID?

    двуличие: как создать и восстановить полную резервную копию системы

    Параллельная и распределенная против традиционной файловой системы

    инструмент командной строки для установки часового пояса

    log rotate, почему создание нового журнала называется журналом rotate вместо log delete или log refresh

    Переход на XFCE по умолчанию Gnome3 на Kali 2.0

    Linux и Unix - лучшая ОС в мире.