sed的额外用法(网摘)

#在我开始动手写一个一个的脚本的时候才会看到更多的用法

1. 在某行的前一行或后一行添加内容(前提是要确定行的内容)

# 匹配行前加
sed -i '/allow/ideny' httpd.conf

#匹配行后加
sed -i '/allow/adeny' httpd.conf

  statement:这里的   i  表示行前, a表示行后 ==> 别人的记忆方法:a = after ,i = in front

 

为了书写方便,还有另外的写法:

sed -i '/2222/a\333333' test.txt

sed -i '/2222/i\3333333' test.txt

 2. 确认具体行号,在某行前后加内容

# 第4行前
sed -i 'N;4add' a.txt

# 第4行后
sed -i 'N;4delete' a.txt

#这里可以引用环境变量, 但是单引号要换成双引号
$line=4
echo $line
4
sed -i "N;$lineadd" a.txt

 3. 删除指定行的前一行或后一行(看不懂可以查看man手册)

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

 

posted @ 2017-09-14 09:48  Frankiee  阅读(203)  评论(0编辑  收藏  举报