大龙的博客

常用链接

统计

最新评论

sed在指定行前插入一段文字,然后写回原文件

1.  sed在指定行前插入:
        sed提供i\和a\两个命令用来在匹配到的行前面和后面加上一行。但是这两个命令好像不能在命令行里面直接输入。因为i\和a\后面不能跟任何字符串,
在增加的行里面需要显示的内容必须在i\或者a\的下一行里面表示。所以需要定义一个命令文件,然后用sed的-f参数指定这个文件。感觉命令文件完全可
以替代-e参数。而且,-e参数是有个数限制的,命令文件不受这个限制。
       
a生一文件,例如,sedfile, 1 榇砦募# more sedfile
1i\
lalala
# more 1
1
2
a
b
c
# sed -f sedfile 1 > 2
# more 2
lalala
1
2
a
b
c
2.  插入的是若干行文字而不是一行文字:
        在用于替代的内容中要插入换行符的话,要用如上的"\"的转义。3.  将sed结果写回原来的文件
         直接修改原文件的!如果他直接修改原文件的,反倒用起砗懿环奖懔耍也就o法或很yF涡忻钍降慕M合命令了。
        不^我到X得@油茫獾靡虼a失`造成不必要的p失。人看法和感受,H供⒖迹#!/bin/bashecho "Please specify the target file:"
read targetfilefor i in $targetfile
do
        echo "Dealing with $i ..."
        sed -f sedfile $i > $i.tmp
        mv $i.tmp $i
done

posted on 2011-06-12 00:55 大龙 阅读(3494) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理