【发布时间】:2016-04-23 19:08:26
【问题描述】:
我编写了一个小脚本,该脚本应该在目录中搜索特定类型的文件,该目录中的唯一字数 > 4 个字符,但它没有按预期工作。
- 无论大小写,它都不会删除相同的单词。
- 我不知道如何计算每个单词的总数。
- 最后,这是一种有效的方法(如果它真的有效?)。
脚本:
#!/bin/bash
file_list=()
while IFS= read file ; do
file_list=("${file_list[@]}" "$file")
tr -sc 'A-Za-z' '\012' < "$file" | sort | uniq -c | egrep "\w{4,}" >> words.txt
done < <(find . -maxdepth 1 -type f -name "*.c")
# echo "${file_list[@]}"
cat words.txt | sort -u | sort -nr
echo "" > words.txt
示例输出:
38 char
35 return
25 static
18 year
18 char
10 COLS
10 CHAR
如何删除上面示例中的欺骗词 char,但要在所有文件中计算它?
【问题讨论】:
-
“单词”是如何定义的?它是由空格/制表符/换行符分隔的字符串还是更多?
-
@RanyAlbegWein:a-zA-Z(四个字符 +),由空格、换行符、制表符分隔,我认为涵盖了它......这就是我想要的至少。谢谢