我想知道在find命令中是否可行。我试图找到具有以下扩展名的所有特定文件,然后它将是SED。这是我当前的命令脚本:
find . -regex '.*\.(sh|ini|conf|vhost|xml|php)$' | xargs sed -i -e 's/%%MEFIRST%%/mefirst/g'
不幸的是,我对正则表达式并不熟悉,但这就是我需要的东西。
我在评论中看到你发现了如何使用标准的find -regex RE
来逃避它,但你也可以指定一种正则表达式来支持它而没有任何转义,使它更容易辨认:
在GNU findutils(Linux)中,使用-regextype posix-extended
:
find . -regextype posix-extended -regex '.*\.(sh|ini|conf|vhost|xml|php)$' | ...
在BSD find(FreeBSD find或Mac OS X find)中,使用-E
:
find . -E -regex '.*\.(sh|ini|conf|vhost|xml|php)$' | ...
POSIX spec for find根本不支持正则表达式。