如何查找文件中句子开头重复单词的数量?例如
abc bdbdndnvd hddh hcjdhjc
dgdgd ghcdggcd abc hjdhcj
abc ghdsgcgdc cdghcgd dhgch
hshhj hcdhchd hdjchjd
输出:
abc
只对整个文件中开头的重复单词感兴趣。如果该单词在其他任何地方都不应计算在内。即在上面的例子中abc
重复了两次。有人能建议我如何使用命令做到这一点吗?我正在使用 Ubuntu 16.04。
答案1
使用cut
和uniq
cut -d" " -f1 | sort | uniq -d
该cut
命令提取每行的第一个单词,并sort
结合uniq -d
仅打印重复的单词。
答案2
使用awk
:
awk '{a[$1]++} END {for (i in a) if (a[i] > 1) print i}'
这只是计算行中第一个单词 ( ) 出现的次数,$1
并将其保存在数组中。然后,循环遍历迄今为止看到的所有数组元素,并打印多次出现的元素。
当然,我已经陷入了循环遍历数组的窠臼END
。steeldriver 指出我不需要:
awk 'a[$1]++ == 1' file