通过 Linux BASH shell 使用 rm 命令和正则表达式

通过 Linux BASH shell 使用 rm 命令和正则表达式

我尝试使用正则表达式删除一组文件,但是 bash shell 返回消息

rm: cannot remove `[0-99]+ -': No such file or directory
rm: cannot remove `[a-zA-Z': No such file or directory
rm: cannot remove `]+.[a-z]+': No such file or directory

命令是[0-99]+\ - [a-zA-Z ]+\.[a-z]+

问题

  1. 我可以使用正则表达式吗?
  2. 如果是,我该如何将它们与诸如、等命令rm一起mkdir使用

答案1

Bash(和其他 Unix shell)使用通配符,不是完整的正则表达式,并且范围不能包含空格。

答案2

使用正则表达式输入find如下命令

find . -type f -regex regEXP

rm并按以下方式结合使用

find . -type f -regex regEXP -exec rm -rf {} \;

相关内容