假设我有一个字典/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
"在每个文件中。我总是一个一个地改变它。有更简单的事情吗?
答案 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 find
和man sed
以了解相应的计划选项。
答案 1 :(得分:1)
您可以使用简单的循环
for i in `ls program_*`;do sed -i 's/rep=100/rep=500/g' $i;done