+ -
当前位置:首页 → 问答吧 → sed 命令能否插入一个命令的返回值?

sed 命令能否插入一个命令的返回值?

时间:2011-01-29

来源:互联网

sed '/abc/i \ cat b.txt' a.txt

这里的粗线部分能否用使用sed命令将cat b.txt'显示的内容插入到a.txt匹配的abc前面?

作者: tianting002   发布时间: 2011-01-29

sed
的r命令

作者: yinyuemi   发布时间: 2011-01-29

sed 的r 只能添加到匹配的abc下一行不是前一行~

作者: tianting002   发布时间: 2011-01-29

回复 tianting002

awk:
     awk 'BEGIN{RS=ORS="\n"}NR==1{a=$0;next}NR==FNR{a=a"\n"$0;next}{print (/abc/?a"\n"$0:$0)}'  b a

作者: yinyuemi   发布时间: 2011-01-29

回复 tianting002

gsed:
  1. sed '/abc/{h;s/.*/cat file/e;G}' urfile
复制代码
i命令也可,但是比较麻烦,如果文件中有特殊字符,比如\。

作者: blackold   发布时间: 2011-01-29

作者: blackold   发布时间: 2011-01-29

回复 blackold


    黑哥能讲下e么?是扩展么?

作者: yinyuemi   发布时间: 2011-01-29

回复 yinyuemi


    对,e是gun 扩展。

作者: blackold   发布时间: 2011-01-29