美好的一天,
我想知道如何只打印文件中重复的单词,而不是排序。
awk的反面是:awk '!x[$0]++'
。还有其他方式吗?
提前感谢任何线索。
预期输入
a
b
a
c
d
e
f
w
g
w
h
预期输出
a
w
答案 0 :(得分:4)
如果查看awk
语句,您会发现它会使用!
取消打印条件。只需删除它,它将打印重复项:
awk 'x[$0]++'
每个副本只打印一行,即使它们再次出现:
awk 'x[$0]++ == 1'
答案 1 :(得分:1)
这可能适合你(GNU sed):
sed -rn 'G;h;/^(\S+).*\1/P' file
这使用后引用仅打印文件中出现的当前行(在本例中为单个字符)的副本。
sed -rn 'G;h;/^(\S+).*\1/!b;/^(\S+).*\1.*\1/b;P' file
仅当文件中出现另一个当前行(在本例中为单个字符)时,才使用后向引用进行打印。
答案 2 :(得分:0)
如果单词每行1个单词(或1个单词为1"单词")
uniq -d YourFile
如果是多字
tr " " "\n" YourFile | uniq -d