gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 05:49:56 25 4
gpt4 key购买 nike

我试图找出如何使用“awk”命令,以便显示在文件(txt)中多次出现的单词。另外,如何显示这个/那些文件的名称?

例如:第一个文件的第一个句子。 第二句话后跟第二个词。

这应该显示:“第一”和“第二”

最佳答案

我假设是 -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对输出进行排序并从输出中删除重复项。

关于linux - 如何使用 awk 显示文本文件中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43857015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com