用来修改的文件是ddd,文件内容如下:脚本文件为opt_ddd,内容如下:#!/bin/bash
for (( i=0;i<10;i++ ))
do
m=$[$i+1]
sed -i "/$i/aasdfasdfasdfasdf$m" ddd
done期望输出如下:实际输出如下:懵逼中......求助

解决方案 »

  1.   

    i=0的输出:
    000000000000
    asdfasdfasdfasdf1 
    111111111111
    222222222222
    333333333333
    444444444444
    555555555555
    666666666666
    777777777777
    888888888888
    999999999999i=1的输出
    000000000000
    asdfasdfasdfasdf1
    asdfasdfasdfasdf2
    111111111111
    asdfasdfasdfasdf2
    222222222222
    333333333333
    444444444444
    555555555555
    666666666666
    777777777777
    888888888888
    999999999999你每次循环新加入的行都影响到了后面查找插入
    倒过来插入即可解决这个问题
      

  2.   

    因为每次追加的数字后面又被匹配到了,最简单的办法就是多加一个数字,比如匹配'00','11'这样的即可
    #!/bin/bash
    for (( i=0;i<10;i++ ))
    do
    m=$[$i+1]
    sed -i "/$i$i/aasdfasdfasdfasdf$m" ddd
    done