使用regex查找多个文件扩展名的命令

use*_*191 9 regex sed file find xargs

我想知道在find命令中是否可行.我试图找到具有以下扩展名的所有特定文件,然后它将是SED.这是我当前的命令脚本:

find . -regex '.*\.(sh|ini|conf|vhost|xml|php)$' | xargs sed -i -e 's/%%MEFIRST%%/mefirst/g'
Run Code Online (Sandbox Code Playgroud)

不幸的是,我对正则表达式并不熟悉,但这就是我需要的东西.

Ada*_*atz 9

我在评论中看到你发现了如何使用标准来逃避它find -regex RE,但是你也可以指定一种正则表达式来支持它而没有任何转义,使它更清晰:

在GNU findutils(Linux)中:

find . -regextype posix-extended -regex '.*\.(sh|ini|conf|vhost|xml|php)$' | ...
Run Code Online (Sandbox Code Playgroud)

在FreeBSD中:

find . -E -regex '.*\.(sh|ini|conf|vhost|xml|php)$' | ...
Run Code Online (Sandbox Code Playgroud)