使用文件名增量器替换文件中的文本

时间:2014-12-11 16:47:38

标签: shell awk sed

我有很多文件完全相同。

in.1.nbs
in.2.nbs

等等。到

in.100.nbs

我需要用文件中存在的这些增量符1,2,3,... 100替换文件中的以下字符串。 in.1.nbs中的$ j = 1,in.2.nbs中的$ j = 2,依此类推。

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 个答案:

答案 0 :(得分:0)

您可以循环使用数字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
...