我想知道特定格式的文件计数,例如。TXT在特定目录中
答案1
您可以从该目录执行以下操作:
files=( *.txt )
echo "${#files[@]}"
答案2
您还可以使用:
ls -l *.txt | wc -l
答案3
一种可移植的方法,它还可以处理奇怪的文件名(例如其中包含换行符)、点文件(文件名以 开头.
)和其他特殊字符,例如引号(仅限当前目录):
find -maxdepth 1 -type f -iname "*.txt" -print0 | tr -cd '\0' | wc -c
或者递归地(不带-maxdepth
),也会计算子目录中的文件:
find -type f -iname "*.txt" -print0 | tr -cd '\0' | wc -c
解释:
-maxdepth 1
仅在当前目录中搜索,不要深入到子目录。-type f
仅搜索常规文件。-iname "*.txt"
搜索以 txt 结尾的文件,不区分大小写。-print0
这是重要的部分,用空字节字符分隔列表tr -cd '\0'
删除除空字节字符之外的所有内容。wc -c
计算字符数(现在是文件数)
答案4
你可以这样做:
ls /path/to/directory | grep ".txt$" | wc -l
如果您希望搜索包含子目录:
ls -lR /path/to/directory | grep ".txt$" | wc -l
其他方式是:
find . -name "*.txt" | wc -l