求sed高手

有两个文件 a b
a的内容如下
  1. 123
  2. 124
  3. 125
  4. heoo
  5. end
  6. dcd
  7. data
  8. good
  9. morning
  10. recycler
  11. bak
复制代码

b的内容如下
  1. __aa
  2. __bb
  3. __cc
复制代码

用sed实现将b文件内容添加到dcd这行前面;前面一行不一定是end

用一下的语句不行,s匹配不上

  1. sed '/dcd/{h;r b
  2. s/dcd\n//;G;}' a
复制代码

如果改用

  1. sed '/dcd/{h;r b
  2. s/dcd//;G;}' a
复制代码

会出现dcd还是在读进内容之前。请问如何解决

作者: ppshw   发布时间: 2011-06-07

  1. $ sed -n '/dcd/!H;/dcd/{x
  2. r b
  3. p};${x;p}' a

  4. 123
  5. 124
  6. 125
  7. heoo
  8. end
  9. __aa
  10. __bb
  11. __cc
  12. dcd
  13. data
  14. good
  15. morning
  16. recycler
  17. bak
复制代码

作者: liion631818   发布时间: 2011-06-07