Linux sed在某行前一行和后一行添加内容

简介: 转载:http://www.361way.com/sed-process-lines/2263.htmllinux的sed工具是十分强大的,能很容易的实现在某关键词的前一行或后一行增加内容。

转载:http://www.361way.com/sed-process-lines/2263.html

linux的sed工具是十分强大的,能很容易的实现在某关键词的前一行或后一行增加内容。今天在批量修改tomcat的日志时就用到了该功能。

一、在某行的前一行或后一行添加内容

具休操作如下:

#匹配行前加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文件里是这样解释的:

a

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

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

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

find . -name server.xml|xargs sed -i '/directory/i      '

二、在某行(指具体行号)前或后加一行内容

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 ,而不是不停的几个空格。

目录
相关文章
|
5月前
|
Linux Perl
一个神奇的Linux命令-sed
一个神奇的Linux命令-sed
23 1
|
5月前
|
存储 监控 Linux
性能工具之linux三剑客awk、grep、sed详解
Linux 三剑客 awk,sed和grep 在性能领域广泛用于性能建模、性能监控及性能分析等方面,也是各大互联网公司测试岗高频面试题,中高端测试人员必备技能之一。
109 1
性能工具之linux三剑客awk、grep、sed详解
|
2月前
|
Linux Perl
在Linux中,如何使用请用 cut 或者 awk,sed命令取出 linux 中 eth0 的 IP 地址?
在Linux中,如何使用请用 cut 或者 awk,sed命令取出 linux 中 eth0 的 IP 地址?
|
8天前
|
Linux Perl
Linux之sed命令
Linux之sed命令
|
1月前
|
机器学习/深度学习 Linux Perl
Linux文本处理三剑客之sed详解
这篇博客详细讲解了Linux中的文本处理工具sed的使用方法和常用命令。
45 9
Linux文本处理三剑客之sed详解
|
11天前
|
人工智能 监控 Shell
常用的 55 个 Linux Shell 脚本(包括基础案例、文件操作、实用工具、图形化、sed、gawk)
这篇文章提供了55个常用的Linux Shell脚本实例,涵盖基础案例、文件操作、实用工具、图形化界面及sed、gawk的使用。
27 2
|
9天前
|
Linux Perl
6-20|linux sed命令
6-20|linux sed命令
|
2月前
|
Linux Shell Perl
在Linux中,如何使用sed命令进行文本替换?
在Linux中,如何使用sed命令进行文本替换?
|
2月前
|
数据挖掘 Linux Perl
在Linux中,awk和sed命令的作用?
在Linux中,awk和sed命令的作用?
|
2月前
|
Linux BI 数据处理
在Linux中,如何使用awk和sed进行文本处理?
在Linux中,如何使用awk和sed进行文本处理?
下一篇
无影云桌面