使用正则表达式查找和删除
find & delete with regex
如何通过命令行用正则匹配并删除文件?
匹配的文件有 4 位数字然后是 .tmp eg
something0001.tmp
something-else-0090.tmp
something-6548.tmp
但不是
something001.tmp
somethingelse99.tmp
尝试了各种版本的
find . -type f -regex '.*\d{4}.tmp' -exec rm -rf {} \;
RegExr 测试匹配正常,但我无法理解 ssh 语法,我确信正则表达式有问题。
find
默认使用正则表达式的 Emacs 语法。这意味着没有像 \d
或 {4}
这样的东西。你如果要达到这个结果,你需要使用(也转义第二个点.
).
find . -type f -regex '.*[0-9][0-9][0-9][0-9]\.tmp' -exec rm -rf {} \;
或使用支持您的正则表达式语法的不同 -regextype
选项。
如何通过命令行用正则匹配并删除文件?
匹配的文件有 4 位数字然后是 .tmp eg
something0001.tmp
something-else-0090.tmp
something-6548.tmp
但不是
something001.tmp
somethingelse99.tmp
尝试了各种版本的
find . -type f -regex '.*\d{4}.tmp' -exec rm -rf {} \;
RegExr 测试匹配正常,但我无法理解 ssh 语法,我确信正则表达式有问题。
find
默认使用正则表达式的 Emacs 语法。这意味着没有像 \d
或 {4}
这样的东西。你如果要达到这个结果,你需要使用(也转义第二个点.
).
find . -type f -regex '.*[0-9][0-9][0-9][0-9]\.tmp' -exec rm -rf {} \;
或使用支持您的正则表达式语法的不同 -regextype
选项。