Sed删除和添加指定行的上下行的数据

课题一:删除匹配行的上一行和下一行数据

1.删除匹配行的上一行和下一行:

sed -i -e '/string/{n;d}' -e '$!N;/\n.*string/!P;D' filename 
  • 1.

**2.删除匹配到特定字符所在行的上一行 **

sed -i -e '$!N;/\n.*string/!P;D' filename
  • 1.

**3.删除匹配到特定字符所在行的下一行 **

sed -i -e '/string/{n;d}' filename
  • 1.

4.sed中使用变量,删除匹配行的上一行和下一行:

AA=string     #变量指定匹配字符串
sed -i -e '/'"$AA"'$/{n;d}' -e '$!N;/\n.*'"$AA"'$/!P;D' file
  • 1.
  • 2.

课题二:匹配到字符串所在的行的上一行或者是下一行插入一条数据

a 追加内容 sed ‘/匹配词/a\要加入的内容’ example.file(将内容追加到匹配的目标行的下一行位置)
i 插入内容 sed ‘/匹配词/i\要加入的内容’ example.file 将内容插入到匹配的行目标的上一行位置)

示例:
#我要把文件的包含“chengyongxu.com”这个关键词的行前或行后加入一行,内容为“allow chengyongxu.cn”


1	#行前加
2	sed -i '/allow chengyongxu.com/i\allow chengyongxu.cn' the.conf.file
3	#行前后
4	sed -i '/allow chengyongxu.com/a\allow chengyongxu.cn' the.conf.file
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

给匹配到文件中具体的字符串的下一行插入一行数据:

sed -i '/listen/a\   listen 80\;'   filename
  • 1.

在匹配到特定字符串的某行后批量插入多行数据:

sed -i '/syncsendmsg.php/a\#013.平台广告小时计划每5分钟写入主平台 xxx 2019-07-04\n*/5 * * * * /usr/bin/php /data/cron/ptask/countjs_syc_plan_main.php\n*/5 * * * * /usr/bin/php /data/cron/ptask/countjs_syc_plan_h_main.php'  filename
  • 1.

给匹配到文件中具体的字符串的上一行插入一行数据:

sed -i '/listen/i\   listen 80\;' filename
  • 1.

课题三:删除匹配到指定字符串所在的行的上一行或者是下一行数据

1、删除指定行的上一行

sed -i -e :a -e '$!N;s/.*\n\(.*ServerName abc.com\)/\1/;ta' -e 'P;D' file
例如:
[root@VM_82_178_centos vhost]# grep listen m.afpfpm.cn443.conf 
   listen 80;
   listen       443;

删除   listen       443;这一行的上行内容:    listen 80;
sed -i -e :a -e '$!N;s/.*\n\(.*listen       443\)/\1/;ta' -e 'P;D' m.afpfpm.cn443.conf
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

2、删除指定字符串之间的内容

sed -i '/ServerName abc.com/,/\/VirtualHost/d' $file

http://www.linuxso.com/shell/17542.html
  • 1.
  • 2.
  • 3.

生产中nginx配置文件替换字符


sed -i 's/#fastcgi_pass/fastcgi_pass/g;s/fastcgi_pass  unix:\/dev\/shm\/php-cgi.sock/#fastcgi_pass  unix:\/dev\/shm\/php-cgi.sock/g'  m.6saeq.cn443.conf
  • 1.
  • 2.

今天演示到此处,欢迎留言一起交流学习

posted @   勤奋的蓝猫  阅读(15)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤
点击右上角即可分享
微信分享提示