列出可能以数字结尾或不以数字结尾的 zip 文件

List zip file which may or may not end with numbers

我想列出所有可能以或不以如下数字结尾的 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.

请帮忙。

-name 来自 find 匹配 shell。因此 [_0-9] 匹配单个 _ 或数字的一个 (!) 字符。然后 * 匹配任何 (!) 字符任意次数。

如果您想将正则表达式与 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.zipjob_customer_0.2.zip。请注意,在 _0.2 中还有一个点 .,所以我在大括号 [_0-9\.] 内添加了它。使用 -regextype find 选项,您可以指定 find 以使用不同风格的正则表达式。请注意,正则表达式匹配整个部分,而不仅仅是文件名,因此您可能必须使用 ex。 find "directtory_path" -regex './directtory_path/job_customer[_0-9\.]*\.zip'