我是bash的新手,所以我很难做一些非常基本的事情.通过播放各种脚本,我发现以下脚本打印包含"单词"的行
for file in*; do
cat $file | grep "word"
done
Run Code Online (Sandbox Code Playgroud)
执行以下操作:
for file in*; do
cat $file | grep "word" | wc -l
done
Run Code Online (Sandbox Code Playgroud)
在每次迭代中都有打印结果"文字"出现在文件上多少次.
echo计数器?我用了一个计数器,但它出现了0.
let x+=cat $filename | grep "word"
Run Code Online (Sandbox Code Playgroud)
你可以管道整个循环wc -l.
for file in *; do
cat $file | grep "word"
done | wc -l
Run Code Online (Sandbox Code Playgroud)
for file in *; do
grep "word" "$file"
done | wc -l
Run Code Online (Sandbox Code Playgroud)
实际上,如果您立即传递所有文件名,则不需要整个循环grep.
grep "word" * | wc -l
Run Code Online (Sandbox Code Playgroud)
请注意,如果word在同一行显示多次,这些解决方案将只计算整行一次.如果要分别计算同一行出现次数,可以使用-o在单独的行上打印每个匹配项:
grep -o "word" * | wc -l
Run Code Online (Sandbox Code Playgroud)