假设我有多个文件,例如:
root.file991 root.file81 root.file77 root.file989
如果我想删除所有的,我需要使用正则表达式第一,所以我已经尝试:
find ./ - regex '\.\/root'
...这将在根文件中找到所有内容,但我如何过滤所有这些特定文件?
2exbekwf1#
您可以使用
find ./ -regextype posix-extended -regex '\./root\.file[0-9]+'
正则表达式将匹配如下路径
\.
/root\.file
/root.file
[0-9]+
8fq7wneg2#
我不太清楚您所说的 “根文件中的文件” 是什么意思,但如果我理解正确的话,常规POSIX glob(7)模式匹配应该就足够了:
glob(7)
rm root.file[0-9]*
ovfsdjhp3#
根据其他文件的复杂程度,您可能需要构建更多的正则表达式。$ man find也有有用的帮助。尝试以下操作:
$ 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
3条答案
按热度按时间2exbekwf1#
您可以使用
正则表达式将匹配如下路径
\.
-一个点/root\.file
-一个/root.file
文本[0-9]+
-以一个或多个数字结尾。8fq7wneg2#
我不太清楚您所说的 “根文件中的文件” 是什么意思,但如果我理解正确的话,常规POSIX
glob(7)
模式匹配应该就足够了:ovfsdjhp3#
根据其他文件的复杂程度,您可能需要构建更多的正则表达式。
$ man find
也有有用的帮助。尝试以下操作: