Imprimir apenas linhas exclusivas do arquivo e não as duplicatas

2

Eu tenho uma lista de palavras ordenadas, linha por linha de arquivo assim:

apple
apple
grapes
lime
orange
orange
pear
pear
peach
strawberry
strawberry

Eu só quero imprimir linhas exclusivas e eliminar duplicatas:

grapes
peach
lime

Como posso fazer isso com sed , awk ou perl ?

    
por MIlle82 09.02.2016 / 15:36

3 respostas

8

Esse é o trabalho para uniq :

$ LC_ALL=C uniq -u file
grapes
lime
peach

Se você quiser outras ferramentas, como perl :

perl -nle '$h{$_}++; END {print for grep { $h{$_} == 1 } %h}' <file
    
por 09.02.2016 / 15:45
1
awk '{arr[$1]++} END {for (i in arr) {if (arr[i]==1) {print i} }}' 1
grapes
lime
peach
    
por 09.02.2016 / 16:00
1

Experimente este AWK!

awk '{a[$0]++} END {for (x in a) if (a[x] == 1) print x}'
    
por 09.02.2016 / 15:40