#在我开始动手写一个一个的脚本的时候才会看到更多的用法
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