我想在一个目录中找到扩展名为.png和.jpg的所有文件,但当我尝试使用正则表达式中的组匹配器搜索两个扩展名时,它什么也找不到。
“find”命令不支持组吗?还是我使用它们的方式不对?我使用https://regex101.com/来测试下面的表达式,它给了我预期的结果。
我尝试了find ./assets -regex '.*\.(png|jpg)'
命令,但这并不显示任何文件。
如果我用
find ./assets -regex '.*\.png'
find ./assets -regex '.*\.jpg'
字符串
它找到我搜索的所有文件,但我需要它在一个命令。
我也,只是为了测试的目的,尝试了find ./assets -regex '.*\.(.*)'
也发现没有一个文件。加上-regextype posix-extended
会产生错误。
例如,它应该匹配:
./assets/image.png
./assets/subdir/image2.png
./assets/image3.jpg
型
还有一些JSON文件不应该匹配,例如:
./assets/image.json
./assets/subdir/image2.json
型
不知道这是否相关,但我在MacBook上使用zsh终端。
1条答案
按热度按时间omtl5h9j1#
正如第一条评论所说,我错过了使用扩展(现代)正则表达式的-E选项。
字符串