![如何统计当前目录下名称长度至少为5个字符的文件?](https://linux22.com/image/120633/%E5%A6%82%E4%BD%95%E7%BB%9F%E8%AE%A1%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E4%B8%8B%E5%90%8D%E7%A7%B0%E9%95%BF%E5%BA%A6%E8%87%B3%E5%B0%91%E4%B8%BA5%E4%B8%AA%E5%AD%97%E7%AC%A6%E7%9A%84%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我正在尝试使用ls
和grep
。但是,我无法找出一种方法来计算当前目录中有多少文件的名称长度至少为 5 个字符。
我怎样才能实现这个目标?
答案1
简单的find
+wc
命令解决方案:
find . -maxdepth 1 -type f -name "?????*" | wc -l
答案2
如果这是家庭作业,作业可能会寻找类似以下内容:
ls | grep ..... | wc -l
虽然我会这样做:
set -- ?????*
echo $#
或者
files=(?????*)
echo ${#files[@]}
这里重要的工作是由 shell glob 完成的,.
它表示匹配文件名的一个字符;通过包含其中 5 个,后跟 *(任意数量的字符),我们生成其中至少包含 5 个字符的文件列表。
$#
然后通过解决方案中的 shell 参数set
或通过对数组中的元素进行计数来完成计数。