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