如何使用 awk 显示文本文件中的重复项

How to display duplicates from a text file using awk

我正在尝试了解如何使用 "awk" 命令,以便显示在文件 (txt) 中多次出现的单词。另外,如何显示this/thosefile/s的名字?

ex: 第一句第一个文件。 第二句后跟第二个词。

这应该显示:"first" 和 "second"

我假设 -i 你的意思是比较/计数应该忽略大小写。

如果我正确理解您的要求,这样的命令应该有效:

awk '{ for( i=1; i<=NF; i++){ cnt[ tolower( $i ) ]++; if (cnt[$i] > 1) {print $i} } }' yourfile | sort -u

它会为您的示例打印这些词:

  • 第一
  • 一句话

如果您需要区分大小写的计数,只需删除 tolower

对于文件中的每一行,脚本遍历每个单词(for( i=1 i <= NF; i++) 循环):

  • 每个单词增加一个计数器(cnt[ tolower( $i) ]++
  • 如果计数大于 1,则字为打印机
  • 通向 sort -u 的管道对输出进行排序并从输出中删除重复项。