sed - i '/allow 361way.com/iallow www.361way.com' the . conf . file #匹配行前后 sed - i '/allow 361way.com/aallow www.361way.com' the . conf . file

而在书写的时候为便与区分,往往会在i和a前面加一个反加一个反斜扛 。代码就变成了:

sed -i '/2222222222/a\3333333333' test.txt
sed -i '/2222222222/i\3333333333' test.txt

这就就可以很方便的看出要在某一行前或某一行后加入什么内容 。不过经常我记不住a 、i 那个是前那个是后。我的记法是a = after ,i = in front 。这样就知道 i 是前,a 是后了。不过官方的man文件里不是这样解释的,man文件里是这样解释的:

text Append text , which has each embedded newline preceded by a backslash . text Insert text , which has each embedded newline preceded by a backslash .

而且其可以配合find查找的内容处理,如下:

find . -name server.xml|xargs sed -i '/directory/i       <!--'
find . -name server.xml|xargs sed -i '/pattern="%h/a       -->'
二、在某行(指具体行号)前或后加一行内容
sed -i 'N;4addpdf' a.txt
sed -i 'N;4ieepdf' a.txt 

这里指定的行号是第四行 。

三、删除指定行的上一行或下一行
删除指定文件的上一行
sed -i -e :a -e '$!N;s/.*n(.*directory)/1/;ta' -e 'P;D' server.xml
删除指定文件的下一行
sed -i '/pattern="%/{n;d}' server.xml 

这个写起来有点长,一般如果不是shell里的需要,我更喜欢用vim去处理。另外需要注意的是,在vim里如果替换的内容里tab这样的符号是需要在编辑模式下分别按ctrl+v 和crtl+I ,而不是不停的几个空格

Handle 0x0058, DMI type 20, 19 bytes Memory Device Mapped Address         Starting Address: 0x0001FFFFC00         Ending Address: 0x000 Linux sed 在某 一行 和后 一行 添加 内容 linux的 sed 工具是十分强大的,能很容易的实现在某关键词的 一行 或后 一行 增加 内容 。今天在批量修改tomcat的日志时就用到了该功能。 一、在某 一行 或后 一行 添加 内容 具休操作如下: # 匹配 sed -i '/allow 361way.com/i\allow www.361way.com' the.conf.file # 匹配 ... 最后 一行 添加 一行 sed '$iHello World.' sed .txt #最后 一行 添加 一行 sed '$aHello World.' sed .txt#删除最后 一行 sed '$d' sed .txt#删除包含Holen的 到最后 一行 ,全删 sed '/Holen/,$d' sed .txt#修改最后 一行 为"Hello World" sed '$cHello World.' sed .txt。 注意:这里没有s/原/新/的方法,也就是没有s这个参数,并且最后没有/.2.通过 sed 实现在搜索到某个字符串之后,在下 一行 插入字符串。如果要在 匹配 面插入 一行 ,把a命令改成i命令即可。新插入的 或者 匹配 如果有特殊字符,记得转义。1.查看原文件中的 内容 。 linux的 sed 工具是十分强大的,能很容易的实现在某关键词的 一行 或后 一行 增加 内容 。今天在批量修改tomcat的日志时就用到了该功能。 一、在某 一行 或后 一行 添加 内容 具休操作如下: # 匹配 sed -i '/allow 361way.com/iallow www.361way.com' the.conf.file # 匹配 sed -i '/allow 361w... sed "/你要选择当 一行 的字符串/ {n;s/$/你要在下 一行 结尾 添加 内容 /}" 文件名。 sed "/指定字符串/ s/$/&你要 添加 内容 /" 文件名。 sed "/指定字符串/ $/你要减去的 内容 / /" 文件名。写了一下午的脚本,大部分时间都花在正则上了,以下是总结。 sed 号 s/$/ 追加 内容 /” 文件名。想要指定字符串哪 一行 其中一部分 内容 替换成空。在指定字符串的下 一行 结尾 添加 。想要在指定字符串的结尾 添加 。在指定 号的 后面 添加 字符。