是否有一个bash命令来计算匹配模式的文件数量?
例如,我想获取目录中所有文件的计数,这些文件都符合这个模式:log*
是否有一个bash命令来计算匹配模式的文件数量?
例如,我想获取目录中所有文件的计数,这些文件都符合这个模式:log*
当前回答
要计算所有内容,只需将ls管道到单词计数行:
ls | wc -l
要使用模式计数,首先将管道连接到grep:
ls | grep log | wc -l
其他回答
ls -1 log* | wc -l
这意味着每行列出一个文件,然后将其输送到单词计数命令,参数切换到计数行。
这是我的一句话。
file_count=$( shopt -s nullglob ; set -- $directory_to_search_inside/* ; echo $#)
这个简单的一行代码可以在任何shell中工作,而不仅仅是bash:
ls -1q log* | wc -l
Ls -1q将为每个文件提供一行,即使它们包含空格或换行符等特殊字符。
输出被输送到wc -l,它计算行数。
这是我经常做的事:
液晶日志* |awk 'END{print NR}'
您可以使用-R选项来查找递归目录中的文件
ls -R | wc -l // to find all the files
ls -R | grep log | wc -l // to find the files which contains the word log
您可以在grep上使用模式