使用sed删除两个模式匹配行之间的内容

在配置文件中有时候想要把两节之间的内容全部删除,便于修改为新的配置,sed命令如下

//删除模式匹配行之间的内容
sed -i  '/\[section1\]/,/\[section2\]/{/\[section1\]/!{/\[section2\]/!d}}'   test.repo

说明:

  1. 中括号需要用转义运算符。
\[section1\]
  1. /string1/!,其中的!表示行中没有匹配到string1。
  2. /[section1]/,/[section2]/为行定位,选择在小节[section1]到[section2]之间的行,包含[section1]和[section2]这两行。
  3. {/[section1]/!{/[section2]/!d}}为之前定位后的操作,需要排除掉[section1]和[section2]这两行,使用/[section1]/!来排除掉[section1]这一行,使用{/[section2]/!d}}继续排除掉[section2]这一行,然后执行删除操作。

示例:

//删除模式匹配行之间的内容
[root@localhost backup]# cat test.repo
# CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-$releasever - Updates
[root@localhost backup]# sed   '/\[base\]/,/\[updates\]/{/\[base\]/!{/\[updates\]/!d}}'   test.repo
# CentOS-Base.repo
[base]
[updates]
name=CentOS-$releasever - Updates

使用sed操作两个模式行之间的内容

基于sed定位两个模式匹配行之间内容的方法
‘/[section1]/,/[section2]/{/[section1]/!{/[section2]/!d}}’
将d命令修改为相应的命令集合即可,例如
‘/[section1]/,/[section2]/{/[section1]/!{/[section2]/!{s/string1/string2/g;…;}}}’

//操作模式匹配行之间的内容
sed -i  '/\[section1\]/,/\[section2\]/{/\[section1\]/!{/\[section2\]/!{s/string1/string2/g;...;}}}'   test.repo

使用sed删除或操作两个pattern模式匹配行之间的内容相关推荐

  1. 【linux】使用sed删除大文件中的指定行

    [linux]使用sed删除大文件中的指定行 引言: 最近在清洗数据时遇到一个超大的文件,需要删除其中不符合数据要求的指定行.使用之前写好的python脚本清洗速度太慢,于是检索了许多linux文件处 ...

  2. linux sed删除指定行_shell三剑客之sed!

    背景 sed(Stream Editor 流编辑器),作为三剑客的一份子,主要的功能有增删改查. 为什么称之为"流"编辑器呢? 大家知道:在Linux文件系统中,一切都可以作为文件 ...

  3. sed 删除某一行_Linux常用命令三剑客之sed,您真的会用吗?

    请关注本头条号,每天坚持更新原创干货技术文章. 如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习 1. 前言 本文主要讲解Linux系统中的sed命令的作用与使用案 ...

  4. sed删除以什么开头的内容_使用 sed 命令删除文件中的行

    原标题:使用 sed 命令删除文件中的行 Sed 代表流编辑器 Stream Editor ,常用于 Linux 中基本的文本处理.sed 命令是 Linux 中的重要命令之一,在文件处理方面有着重要 ...

  5. sed删除指定行的上一行

    有这么一个需求,需要从若干个apache虚机配置文件中删除一段内容,类似下面这种 <VirtualHost *> ServerName abc.com DocumentRoot /home ...

  6. sed删除匹配行的上一行和下一行

    1.删除匹配行的上一行和下一行: sed -i -e '/string/{n;d}' -e '$!N;/\n.*string/!P;D' file 2.sed中使用变量,删除匹配行的上一行和下一行: ...

  7. sed 删除某一行_运用sed命令高效地删除文件的特定行

    运用 sed 命令高效地删除文件的特定行 正常来说,我们想要删除文件中的某些行内容,一般都是先打开这个文件,然后找到要删除的内容,再然后选中这些行并按删除键进行删除,这在数据量很少时是没有问题的.但是 ...

  8. sed删除以什么开头的内容_技术|如何使用 sed 命令删除文件中的行

    Sed 代表流编辑器Stream Editor,常用于 Linux 中基本的文本处理.sed 命令是 Linux 中的重要命令之一,在文件处理方面有着重要作用.可用于删除或移动与给定模式匹配的特定行. ...

  9. linux 删除行 脚本呢,Linux SED脚本找到匹配模式的第一行并删除它

    我想创建一个sed命令,在文件中查找匹配模式的第一行,删除所有该行或将其全部替换为其他文本.我不想匹配所有的行,因为规则是匹配它的一部分. 我怎么能用sed做到这一点? 例如: myline 1 is ...

最新文章

  1. 高斯噪声、高斯白噪声解析
  2. Linux 编译安装BIND
  3. 增加一行减少一行_【第2171期】一行 CSS 代码的魅力
  4. 常用的分隔符有哪三种_掌握这三种调漂方法,你想怎么钓就怎么钓,再也不用求人...
  5. 呼吸灯 裸机 S3C2416
  6. Eclipse ADT安装慢解决方法
  7. 三调 图斑地类面积_国土三调到底该怎么做?你需要知道这几点?
  8. 聊聊身边的嵌入式—英语学习利器点读笔
  9. 井下三专两闭锁的内容_三专两闭锁
  10. 废弃的Android手机用起来,就是一台小型服务器!
  11. 大象跳转:解析微信内自动跳转浏览器打开URL网页的操作步骤
  12. 矩阵理论——内积空间
  13. Mac电脑:您的安全性偏好设置仅允许安装来自App Store和被认可的开发者的应用(解决方法)
  14. apple watch 指南
  15. WordNet相关API介绍及语义相似度计算方法
  16. python水印倾斜_【python PIL学习】给照片打水印
  17. 台达PLC ES系列与英威腾GD变频器通讯程序原创可直接用于生产的程序
  18. 大地电磁正演程序MT2D主程序分析
  19. opencv中礼帽和黑帽_一流的礼帽
  20. 大专计算机专业建设计划书,新时期计算机专业建设的策略

热门文章

  1. C语言的三种基本结构
  2. MPTCP for Ubuntu18.04
  3. 关于element tree树形结构设置默认展开第一级,第二级,第三级,以此类推
  4. Java-使用Math,实现lg、平方、开方、round、floor、ceil
  5. OpenCV学习之cvRound()、cvFloor()、cvCeil()理解
  6. 用c语言输出杨辉三角形
  7. maven仓库下载地址
  8. 数据类型(五大基本类型,3种特殊类型)
  9. 基于单片机的空气检测系统设计
  10. Matplotlib中如何给柱状图中的数据添加文本注解