仅打印文件中的唯一行而不是重复项

仅打印文件中的唯一行而不是重复项

我有一个按行排序的单词列表,如下所示:

apple
apple
grapes
lime
orange
orange
pear
pear
peach
strawberry
strawberry

我只想打印出唯一的行并删除重复项:

grapes
peach
lime

我怎样才能用sed, awkor做到这一点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!

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

相关内容