我有这个脚本。我只想打印非零结果。 我的环境是Os X
find /PATH/ -type f -exec basename "{}" | grep -i "Word" | wc -l
答案 0 :(得分:2)
首先,这是一个执行相同操作的更快的find命令:
find /PATH/ -type f -iname '*Word*' | wc -l
现在,您可以将这个优化的命令放入if语句中:
if [[ `find /PATH/ -type f -iname '*Word*' | wc -l` ]]; then
find /PATH/ -type f -iname '*Word*' | wc -l
fi
要仅运行一次命令,请将结果保存到变量中:
count=`find /PATH/ -type f -iname '*Word*' | wc -l`
if [[ $count -gt 0 ]]; then
echo $count
fi
答案 1 :(得分:2)
您可以使用grep -v
删除仅由零组成的输出(前面带有空格,因为这就是wc
打印的内容)。通过@joanis优化搜索,可以得到:
find /PATH/ -type f -iname '*Word*' | wc -l | grep -v '^ *0$'
答案 2 :(得分:0)
对选定的记录进行计数时,不必筛选0个匹配项。 此命令显示一次或多次出现的所有基本名称。
find . -type f -iname '*Word*' -printf "%f\n" | sort | uniq -c
您可能想在上添加| sort -n
,以查看哪个文件出现得最多。
也许您想要一些东西:Word
在不同文件中出现的频率。
grep -Rci while | grep -v ":0$"