怎样使用 sed 添加行?急用

怎样使用 sed 添加行?急用

[root@server buffer_pool]# cat -n testa
     1
     2  c=0
     3  b=2
     4  a=0
     5  d=1
     6  f=5
[root@server buffer_pool]# cat -n test.sh
     1  #!/bin/sh
     2
     3  cat -n testa
     4
     5  for((i=0; i<$*; i++))
     6  do
     7      sed "///" testa
     8  done
     9
    10  cat -n testa
[root@server buffer_pool]# sh test.sh 5

我想使用这个脚本实现
[root@server buffer_pool]# cat -n testa
     1
     2  c=0
     3  b=2
     4  a=0
     5  a=1
     6  a=2
     7  a=3
     8  a=4
     9  d=1
    10  f=5


请问应该怎么用 sed 实现 ?      
引用:
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[16167 0] ; echo $'aa\nbb'
aa
bb
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[16167 0] ; echo $'aa\nbb' | sed -e $'/bb/i\\\ncc'
aa
cc
bb
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[16167 0] ; bye
      
谢谢,
可怎么将修改保存到文件里呢?      
引用:
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[16167 0] ; echo hello world > file
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[16167 0] ; cat file
hello world
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[16167 0] ; bye
      
又学会了两点,多谢版主      
我这样写的,
    sed -i $"/d=1/i\\\  a=$i" testa
也可以保存      
引用:
原帖由 walkright 于 2007-8-24 13:58 发表
我这样写的,
    sed -i $"/d=1/i\\\  a=$i" testa
也可以保存
good       
请教dearvoid

sed -e $'///' 中的 "$"为何意?      
我是借助一个临时文件实现的      
引用:
原帖由 li-jiahuan 于 2007-8-25 13:22 发表
请教dearvoid

sed -e $'///' 中的 "$"为何意?
bash 的 manual 这么说:
复制内容到剪贴板
代码:
       Words of the form $'string' are treated specially.  The word expands to
       string,  with backslash-escaped characters replaced as specified by the
       ANSI C standard.  Backslash escape sequences, if present,  are  decoded
       as follows:
              \a     alert (bell)
              \b     backspace
              \e     an escape character
              \f     form feed
              \n     new line
              \r     carriage return
              \t     horizontal tab
              \v     vertical tab
              \\     backslash
              \'     single quote
              \nnn   the  eight-bit  character  whose value is the octal value
                     nnn (one to three digits)
              \xHH   the eight-bit character whose value  is  the  hexadecimal
                     value HH (one or two hex digits)
              \cx    a control-x character

       The  expanded  result  is  single-quoted, as if the dollar sign had not
       been present.


For example:
引用:
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=1282 $?=0] ; echo 'hello\nworld'
hello\nworld
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=1282 $?=0] ; echo $'hello\nworld'
hello
world
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=1282 $?=0] ; bye