如果我在我的目录中有几个文件,如下所示: 1.zip 2.zip 3.zip 4.zip 11.zip 21.zip
使用bash,如何列出/查找名称中包含数字的文件>例如10?
会给我11.zip和21.zip
谢谢!
答案 0 :(得分:3)
您可以使用:
for f in *.zip; do (( ${f%.*} > 10 )) && echo "$f"; done
11.zip
21.zip
${f%.*}
将从您的文件名中删除扩展名,(( ${f%.*} > 10 ))
仅在剩余部分大于10
时才会返回。
答案 1 :(得分:0)
您可以使用扩展的globbing,例如:
shopt -s extglob nullglob
echo @(1[1-9]|[2-9][0-9]).zip
@
恰好表示括号中的一种模式。这将匹配11到99之间的文件名,后跟“.zip”。
编辑:避免@RonPringadi指出的“噪音”