Ash*_*rma 50 unix linux grep count find
我正在尝试计算整个目录中的特定单词出现次数.这可能吗?
比如说有一个包含100个文件的目录,所有文件的文件中都可能包含"aaa"字样.我如何计算该目录下所有文件中"aaa"的数量?
我尝试过类似的东西:
zegrep "xception" `find . -name '*auth*application*' | wc -l
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
Car*_*rós 92
grep -roh aaa . | wc -w
grep递归地在当前目录中搜索aaa的所有文件和目录,并仅输出匹配,而不是整行.然后,只需wc用来计算那里有多少个单词.
grep以最简单的方式使用。尝试grep --help获取更多信息。
要获取特定文件中单词的计数:
grep -c <word> <file_name>
Run Code Online (Sandbox Code Playgroud)
例子:
grep -c 'aaa' abc_report.csv
Run Code Online (Sandbox Code Playgroud)
输出:
445
Run Code Online (Sandbox Code Playgroud)要获取整个目录中单词的计数:
grep -c -R <word>
Run Code Online (Sandbox Code Playgroud)
例子:
grep -c -R 'aaa'
Run Code Online (Sandbox Code Playgroud)
输出:
abc_report.csv:445
lmn_report.csv:129
pqr_report.csv:445
my_folder/xyz_report.csv:408
Run Code Online (Sandbox Code Playgroud)基于find和的另一种解决方案grep.
find . -type f -exec grep -o aaa {} \; | wc -l
Run Code Online (Sandbox Code Playgroud)
应正确处理包含空格的文件名.