重複の代わりにファイルの一意の行のみを印刷する

重複の代わりにファイルの一意の行のみを印刷する

次のように行ごとにソートされた単語のリストがあります。

apple
apple
grapes
lime
orange
orange
pear
pear
peach
strawberry
strawberry

一意の行を印刷して重複項目を削除したいです。

grapes
peach
lime

sed、またはを使用してawkこれを行うにはどうすればよいですかperl

答え1

これは仕事です。ユニーク:

$ LC_ALL=C uniq -u file
grapes
lime
peach

次のような他のツールが必要な場合perl

perl -nle '$h{$_}++; END {print for grep { $h{$_} == 1 } %h}' <file

答え2

awk '{arr[$1]++} END {for (i in arr) {if (arr[i]==1) {print i} }}' 1
grapes
lime
peach

答え3

これを試してみてください!

awk '{a[$0]++} END {for (x in a) if (a[x] == 1) print x}'

関連情報