Извлечь уникальные строки из файла с повторяющимися строками - PullRequest
0 голосов
/ 05 мая 2020

Я хочу извлечь только уникальные строки. Например, если отсортированный файл имеет

dog
dog
weasel
cat
cat
skunk
turtle
turtle

, я хочу извлечь

weasel
skunk

Все, что я нашел (например, uniq -u), даст

dog
weasel
cat
skunk
turtle

Это не то, что я хочу

Я потратил несколько часов на поиск в Google и нашел только команды для удаления повторяющихся строк и ни одной команды для извлечения уникальных строк.

Ответы [ 2 ]

2 голосов
/ 05 мая 2020
echo 'dog dog weasel cat cat skunk turtle turtle' | tr ' ' "\n" | uniq -c | grep ' 1 '

даст

      1 weasel
      1 skunk

С некоторыми cut text-fu вы можете получить только имена, например,

echo 'dog dog weasel cat cat skunk turtle turtle' | \
  tr ' ' "\n" | \
  uniq -c | \
  grep ' 1 ' | \
  cut -d'1' -f2 | cut -c 2

даст

weasel
skunk
1 голос
/ 05 мая 2020

Предположим, что в вашем реальном файле все дубликаты сгруппированы вместе, как в вашем примере:

uniq -c input.txt | awk '$1 == 1 { print $2 }'

должно сработать.

...