复制文件并替换字符串

复制文件并替换字符串

我正在尝试编写一个脚本来复制文件,并替换文件名中的log_REPLACE字符串以及文件中的字母和。REPLACEAB

所以我想创建log_A, 和log_b,其中的字符串REPLACE分别替换为其中的字母 A 和 B 。

我想:

cp log_REPLACE log_A
cp log_REPLACE log_B
grep -rl REPLACE  | xargs sed -i 's/REPLACE/A/g'

但最终会在两个副本中重写(*A 和 *B)。有一个更好的方法吗?

答案1

您可以循环遍历可能的文件名子字符串,用 进行替换sed,将 STDOUT 保存sed为所需的文件名:

for i in a b; do
    sed "s/REPLACE/$i/g" log_REPLACE >"log_$i"
done

进行必要的更改以满足您的需求。

相关内容