regex 如何使用正则表达式在LINUX中找到多个不同结尾的文件?

p3rjfoxz  于 2022-11-18  发布在  Linux
关注(0)|答案(3)|浏览(167)

假设我有多个文件,例如:

root.file991
root.file81
root.file77
root.file989

如果我想删除所有的,我需要使用正则表达式第一,所以我已经尝试:

find ./ - regex '\.\/root'

...这将在根文件中找到所有内容,但我如何过滤所有这些特定文件?

2exbekwf

2exbekwf1#

您可以使用

find ./ -regextype posix-extended -regex '\./root\.file[0-9]+'

正则表达式将匹配如下路径

  • \.-一个点
  • /root\.file-一个/root.file文本
  • [0-9]+-以一个或多个数字结尾。
8fq7wneg

8fq7wneg2#

我不太清楚您所说的 “根文件中的文件” 是什么意思,但如果我理解正确的话,常规POSIX glob(7)模式匹配应该就足够了:

rm root.file[0-9]*
ovfsdjhp

ovfsdjhp3#

根据其他文件的复杂程度,您可能需要构建更多的正则表达式。$ man find也有有用的帮助。尝试以下操作:

$ find ./ -regex '\.\/root.file[0-9].*'

# if that works to find what you are looking for, add the -delete
$ find ./ -regex '\.\/root.file[0-9].*' -delete

相关问题