Shell 使用filename incrementor替换文件中的文本
我有很多完全相同的文件Shell 使用filename incrementor替换文件中的文本,shell,awk,sed,Shell,Awk,Sed,我有很多完全相同的文件 in.1.nbs in.2.nbs 等等。最多 in.100.nbs 我需要将文件中的以下字符串替换为文件中存在的增量1、2、3、…100$j=1在in.1.nbs中,$j=2在in.2.nbs中,依此类推 file : in.1.nbs this is in the first line in.Au-$j.nbs 5th line is min.$j.out 10th line is data.$j 您可以在数字1到100之间循环,使用sed将占位符替换
in.1.nbs
in.2.nbs
等等。最多
in.100.nbs
我需要将文件中的以下字符串替换为文件中存在的增量1、2、3、…100$j=1在in.1.nbs中,$j=2在in.2.nbs中,依此类推
file : in.1.nbs
this is in the first line in.Au-$j.nbs
5th line is min.$j.out
10th line is data.$j
您可以在数字1到100之间循环,使用
sed
将占位符替换为文件中相应命名的每个值:
for i in {1..100}; do
sed -i "s/\$j/$i/g" in.$i.nbs;
done
{a..b}
构造是一个bash-ism,如果您在另一个shell中工作,则可以在seq
的输出上循环:
for i in $(seq 1 100); do
...
谢谢。我最初在替换占位符时遇到了问题,现在明白了逻辑。