Cnv*_*rsn 5 grep bash directory files
我已经问过一个类似的问题,但人们误解了我在问什么。我在问如何生成每个单词的列表,每个文件的单词计数仅增加一次。
例如,我有一个包含 10 个文件的目录,我想使用 bash 命令生成一个单词列表,该列表表示 1-10 的值,具体取决于它们出现在多少个文件中:
10 The
10 and
8 bash
7 command
6 help....
Run Code Online (Sandbox Code Playgroud)
等等。
我已经知道grep -l word *| wc -l会搜索一个单词,但我想创建一个所有单词的列表。
有没有办法将其与tr '[A-Z]' '[a-z]' | tr -d '[:punct:]'大写字母相结合,以便不重复大写字母并删除标点符号?
Meh*_*met -1
这应该从所有文件中获取所有单词,对它们进行排序并获取唯一的单词,然后迭代这些单词并计算它出现在多少个文件中。
# find all words from all files within the directory
grep -o -h -E '\w+' directory/*|sort -u | \
while read word;
do
# iterate through each word and find how many files it occurs
c=`grep -l "$word" directory/*|wc -l`
echo "$c $word";
done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5301 次 |
| 最近记录: |