如何替换 Linux 中的一批文件的字母

how to replace letters of batch of files in Linux

假设我有一本字典/home/program/。并且有 5 个程序 (program_1.R,program_2.R,program_3.R,program_4.R,program_5.R)。五个程序中的每一个在其文件中都有“rep=100”。现在我想在每个文件中将“rep=100”更改为“rep=500”。我总是一一更改。有更简单的方法吗?

所以您需要一个 shell 脚本来一步更改所有文件,对吗? 然后试试这个:

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

有多个目录(你的意思是目录 - 不是 "dictionaries"?!),你可以围绕查找命令构建一个循环:

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 以了解各自的程序选项。

您可以使用简单的 for 循环

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