我有一个文件列表,准确地说是 10 个,位于一个菜谱文件夹中。我必须确定每个单词在所有文件中出现的次数,然后根据这些频率对它们进行排序。我可以让我的命令一次处理一个文件,但我需要它一次处理每个文件,然后输出到一个文件。例如:这个词盐总共出现 25 次,那么输出将为:25 个盐。到目前为止我有这个:
sed -d 's/\s/\n/g' < lyrics01.txt | sort | uniq -c | sort -nr >> lyrics01wordcount.tf
我需要对此进行更改以适用于目录中的每个文件,我理解为什么它适用于上面的文件。任何帮助将非常感激。
答案1
sed -d 's/\s/\n/g' * | sort | uniq -c | sort -nr >> lyrics01wordcount.tf
简单的。
答案2
两件事情:
- 您不需要使用重定向
sed
。它将任何文件名视为输入数据。所以sed ... lyrics01.txt
效果一样好sed ... < lyrics01.txt
(事实上更好,因为......) - 如果没有重定向,您可以将多个文件指定为
sed
:sed ... file1 file2 ...
,或者根据您的情况,仅指定sed ... *.txt
.