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
...

谢谢。我最初在替换占位符时遇到了问题,现在明白了逻辑。