我正在试图找出如何计算每个单词出现的文件数量。例如,我有一个包含10个食谱文本的目录,我希望能够找到,例如,如何许多文本中“胡椒”这个词出现的结果就像'8胡椒'。
我知道如何计算字数等但是我觉得这有点过头了,我真的很感激一些帮助。
关于我所说的静脉的一个例子,这是我想出的字数统计命令
cat test.txt | tr '[A-Z]' '[a-z]' | tr -d '[:punct:]' | tr ' ' '\n' | sort | uniq
答案 0 :(得分:3)
find -type f \
| xargs tr -c '[:alpha:]' '\n' \
| tr '[:upper]' '[:lower:]' \
| sort \
| uniq -c \
| grep pepper
这个
查找子目录中的所有文件;
连接它们,用换行符替换所有不是字母(这将产生 单行的行,以及很多空行);
转换为小写(使用POSIX类将保留非美国字符);
排序并折叠相同的字行以生成类似的内容
单词出现图
42
16 add
9 the
8 jalapeño
8 pepper
7 lot
以及仅显示第8 pepper
行的过滤器。
您可能希望替换或改进 tr 命令,具体取决于您对文件的期望,或者限定 find 以仅匹配具有特定名称模板的文件等
答案 1 :(得分:1)
考虑以下
find <directory path> -name "*pepper*" -type f |wc -l
将列出所有有辣椒的文件并计算它们
其他替代方案(如果您位于收件人所在的目录中)
ls -l|grep -E '*pepper*'|wc -l
答案 2 :(得分:1)
grep -l
怎么样?例如,grep -l pepper *
将列出包含&#34; pepper&#34;的所有文件。 grep -l pepper * | wc -l
只会告诉你有多少这样的文件..