如何在Linux中替换批处理文件的字母

时间:2015-04-18 21:16:08

标签: linux r terminal vi

假设我有一个字典/home/program/。并且有5个程序(program_1.R,program_2.R,program_3.R,program_4.R,program_5.R)。五个程序中的每一个都有" rep=100"在他们的文件中。现在我想改变" rep=100" as" rep=500"在每个文件中。我总是一个一个地改变它。有更简单的事情吗?

2 个答案:

答案 0 :(得分:3)

所以你要求shell脚本一步更改所有文件,对吧? 然后尝试这个:

find /home/program -name "*.R" -type f -exec sed -i 's/rep=100/rep=500/g' {} \;

有多个目录(你的意思是目录 - 不是"字典"?!),你可以在find-command周围构建一个循环:

for d in /home/program1 /home/program2 /home/program3; do
  find "$d" -name "*.R" -type f -exec sed -i 's/rep=100/rep=500/g' {} \;
done

请查看man findman sed以了解相应的计划选项。

答案 1 :(得分:1)

您可以使用简单的循环

for i in `ls program_*`;do sed -i 's/rep=100/rep=500/g' $i;done