Bash列表文件的数字模式大于值

时间:2016-11-14 16:51:11

标签: bash

如果我在我的目录中有几个文件,如下所示: 1.zip 2.zip 3.zip 4.zip 11.zip 21.zip

使用bash,如何列出/查找名称中包含数字的文件>例如10?

会给我11.zip和21.zip

谢谢!

2 个答案:

答案 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指出的“噪音”