使用Mac终端删除文件

时间:2019-12-09 13:30:47

标签: regex macos terminal

我试图在终端中使用find删除PyCharm似乎随机创建的一些文件。它创建了以下文件的副本:

manage.py
manage 2.py
manage 3.py
index.js
index 2.js

所以我要匹配的模式是一个字符串,后跟一个空格,然后是一个带有不同结尾的数字。目前我正在尝试:

find pathToMyFiles -type -f -regex '.+?\w+ [0-9](.py|.js)$' 

即使我去regexer或其他任何regex测试站点时,它捕获了我的测试字符串,也无法识别目录中的任何文件,我是否缺少mac终端专有的内容?我知道此脚本不会删除任何文件,我只是在尝试确保首先正确识别它们。

1 个答案:

答案 0 :(得分:1)

您可以结合使用两个-name语句来代替正则表达式:

$ find -name '* [[:digit:]].py' -o -name '* [[:digit:]].js'
./manage 2.py
./manage 3.py
./index 2.js

这会找到所有以空格和扩展名为.py.js的数字结尾的内容。

如果要使用正则表达式,则必须以不同的方式进行一些转义(请参见default regular expression syntax):

$ find -regex '.+\w+ [0-9]\.\(py\|js\)$'
./manage 2.py
./manage 3.py
./index 2.js
捕获组的

(),交替的|和文字周期的.必须全部转义。 .+?不是有效的组合。