如何使用bash以递归方式将字符串替换为许多文件中的另一个字符串?

时间:2013-04-14 20:00:32

标签: bash

我需要编写一个脚本,将某个字符串的所有匹配项替换为目录及其所有子目录中所有文件中的“replaceWithThisNewString”。 怎么办呢?

3 个答案:

答案 0 :(得分:3)

find /path/to/dir -type f -exec sed -i 's/original/replacement/g' {} \+

或者,如果您的find不支持\+

find /path/to/dir -type f -exec sed -i 's/original/replacement/g' {} \;

答案 1 :(得分:0)

试试这一行:

find /aDir -type f |xargs sed -i 's/certainString/replaceWithThisNewString/g'

答案 2 :(得分:0)

使用

shopt -s globstar # if not already enabled
sed -i '/certainString/s/certainString/replaceWithThisNewString/g' **