У меня есть текстовый файл, который содержит около 50 МБ текста:

valA
valB
valC
valZ
valB

Какой самый быстрый способ:

  1. кот файл
  2. Показать уникальные появления

2 ответа2

3

Один из способов использования awk:

awk '!array[$0]++' file.txt

Результаты:

valA
valB
valC
valZ

Пища для размышлений:

sort -u file.txt

valA
valB
valC
valZ

< file.txt sort | uniq

valA
valB
valC
valZ

< file.txt sort | uniq -u                 # only print unique lines

valA
valC
valZ

< file.txt sort | uniq -d                 # only print duplicate lines

valB
1

sort text.txt | uniq -c | grep "^\s*1 "

  • вы должны отсортировать перед uniq
  • grep те из кол = 1

Обратите внимание, что ValB не является уникальным здесь.

редактировать

Как я мог пропустить, есть -u для uniq: uniq -u но использовать этот глупый способ :)

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