我想列出所有可能会或可能不会以以下数字结尾的zip文件:
job_customer_old_0.1.zip
job_customer_old.zip
job_customer_0.2.zip
job_customer.zip
find "directtory_path" -name job_customer[_0-9]*\.zip
我希望只有job_customer.zip和job_customer_0.2.zip。 但是我得到了全部4。
请帮助。
答案 0 :(得分:1)
-name
中的 find
与shell匹配。因此,[_0-9]
与单个{(1)}字符或数字匹配。然后_
可以与任意(!)字符多次匹配。
如果要将正则表达式与*
一起使用,请使用find
选项。例如:
-regex
这将打印# creating MCVE
xargs touch <<EOF
job_customer_old_0.1.zip
job_customer_old.zip
job_customer_0.2.zip
job_customer.zip
EOF
find . -regex '\./job_customer[_0-9\.]*\.zip'
和job_customer.zip
。请注意,在job_customer_0.2.zip
中还有一个点_0.2
,因此我在括号.
内添加了该点。使用[_0-9\.]
-regextype
选项,您可以指定find
以使用不同形式的正则表达式。请注意,正则表达式不仅匹配文件名,还匹配整个部分,因此您可能必须使用ex。 find