Bash代码字在文本目录中的出现计数

Bash代码字在文本目录中的出现计数,bash,shell,unix,word,Bash,Shell,Unix,Word,我试图找出如何计算每个单词出现在这些文件中的数量。例如,我有一个包含10个菜谱文本的目录,我希望能够找出,例如,有多少文本中的“pepper”一词出现,结果像“8 pepper” 我知道如何计算字数之类的,但这有点让我不知所措,我想,我真的很感谢你的帮助 作为我所说的脉络的一个例子,这是我想出的一个单词计数命令 cat test.txt | tr '[A-Z]' '[a-z]' | tr -d '[:punct:]' | tr ' ' '\n' | sort | uniq 考虑以下几点 f

我试图找出如何计算每个单词出现在这些文件中的数量。例如,我有一个包含10个菜谱文本的目录,我希望能够找出,例如,有多少文本中的“pepper”一词出现,结果像“8 pepper”

我知道如何计算字数之类的,但这有点让我不知所措,我想,我真的很感谢你的帮助

作为我所说的脉络的一个例子,这是我想出的一个单词计数命令

cat test.txt | tr '[A-Z]' '[a-z]' | tr -d '[:punct:]' | tr ' ' '\n' | sort | uniq 
考虑以下几点

 find <directory path>  -name "*pepper*" -type f  |wc -l
考虑以下几点

 find <directory path>  -name "*pepper*" -type f  |wc -l
这个

  • 查找子目录中的所有文件

  • 连接它们,将所有非字母替换为换行符(这将产生 单字行,空行多)

  • 转换为小写(使用POSIX类将保留非US字符)

  • 排序,并折叠相同的单词行以生成类似 单词出现图

    42 
    16 add
    9 the
    8 jalapeño
    8 pepper
    7 lot
    
  • 并筛选结果以仅显示行
    8

  • 您可能希望根据文件中的预期内容替换或改进tr命令,或者限定查找只匹配具有特定名称模板的文件,等等

    这个

  • 查找子目录中的所有文件

  • 连接它们,将所有非字母替换为换行符(这将产生 单字行,空行多)

  • 转换为小写(使用POSIX类将保留非US字符)

  • 排序,并折叠相同的单词行以生成类似 单词出现图

    42 
    16 add
    9 the
    8 jalapeño
    8 pepper
    7 lot
    
  • 并筛选结果以仅显示行
    8


  • 您可能希望根据您对文件的期望来替换或改进tr命令,或者限定查找只匹配具有特定名称模板的文件,等等。

    关于
    grep-l
    如何?例如,
    grep-l pepper*
    将列出包含“pepper”的所有文件
    grep-l pepper*| wc-l
    只会告诉您有多少这样的文件。

    那么
    grep-l
    呢?例如,
    grep-l pepper*
    将列出包含“pepper”的所有文件
    grep-l pepper*| wc-l
    只会告诉您有多少这样的文件。

    Ahh这是有道理的,但不幸的是sed命令对我不起作用,因为我在mac上的终端中。有没有办法用猫来代替你知道吗?另外,命令行将如何更改以查找多个文件中出现的所有单词的出现计数(仅适用于一个文件)?我只是用它作为一个例子来查找所有带pepper的单词并计数尝试“grep-o-E'pepper”“my|u file”“| wc-l”让我换一句话,如何计算目录中所有文件中单词的出现次数?但每个文件中每个字的计数只增加一次。此外,我不只是想要一个特定的单词,我想要一个所有多个单词出现的列表。如果只是一个单词,我可以使用“grep-l word*| wc-l”,但我如何让它列出不同文件中多次出现的所有单词?好的,我编辑了我的答案,并包含了一个可以使用的小脚本。希望这对你有帮助啊,这是有道理的,但不幸的是,sed命令对我不起作用,因为我在终端上雨衣。有没有办法用猫来代替你知道吗?另外,命令行将如何更改以查找多个文件中出现的所有单词的出现计数(仅适用于一个文件)?我只是用它作为一个例子来查找所有带pepper的单词并计数尝试“grep-o-E'pepper”“my|u file”“| wc-l”让我换一句话,如何计算目录中所有文件中单词的出现次数?但每个文件中每个字的计数只增加一次。此外,我不只是想要一个特定的单词,我想要一个所有多个单词出现的列表。如果只是一个单词,我可以使用“grep-l word*| wc-l”,但是我如何让它列出不同文件中多次出现的所有单词呢?好的,我编辑了我的答案,并包含了一个你可以使用的小脚本。希望这对你有帮助。我会将
    tr
    更改为
    tr-c a-zA-Z'\n'
    来处理这些问题标点符号,例如,
    远离,“
    away
    不单独显示。这样你会有很多空行,但是你可以用
    grep来去掉它们。
    或者让
    排序| uniq
    将它们折叠成一行,并进行大量计数。我会将
    tr
    更改为
    tr-c a-zA-Z'\n'
    来处理标点符号,例如
    ,“
    away
    不单独显示。这样你会有很多空行,但是你可以用
    grep来摆脱它们。
    或者让
    排序| uniq
    将它们折叠成一行,并进行大量计数。或者
    grep-l pepper-r
    如果你想递归到subdirs,如果要递归到子目录,可以使用
    --include
    --exclude
    grep-l pepper-r
    进一步细化,也可以使用
    --include
    --exclude
    进一步细化。