如何替换 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 find
和 man sed
以了解各自的程序选项。
您可以使用简单的 for 循环
for i in `ls program_*`;do sed -i 's/rep=100/rep=500/g' $i;done
假设我有一本字典/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 find
和 man sed
以了解各自的程序选项。
您可以使用简单的 for 循环
for i in `ls program_*`;do sed -i 's/rep=100/rep=500/g' $i;done