Shell脚本以递归方式浏览目录并替换字符串

vph*_*one 3 regex scripting

我需要递归搜索目录并将所有文件中的字符串(例如http:// development:port/URI)替换为另一个字符串(例如http:// production:port/URI).有人可以帮忙吗?

如果该脚本可以打印出它修改的文件并将搜索/替换模式作为输入参数,那会好得多.

问候.

ind*_*ion 6

找 .-type f | xargs sed -is/pattern/replacement/g


too*_*kit 5

试试这个:

find . -type f | xargs grep -l development | xargs perl -i.bak -p -e 's(http://development)(http://production)g'
Run Code Online (Sandbox Code Playgroud)

另一种反馈略多的方法:

find . -type f | while read file
do
    grep development $file && echo "modifying $file" && perl -i.bak -p -e 's(http://development)(http://prodution)g' $file
done
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.