首页 > 其他分享 >sed 多行条件匹配修改

sed 多行条件匹配修改

时间:2023-05-06 14:45:09浏览次数:21  
标签:多行 匹配 模式 444 --- sed n666 333

cat test
111
222
333
---
---
111
222
333
---
111
333
---
111
222

需要将

111

222

333

替换成

444

555

666

使用sed命令

sed -n '1h;1!H;${g;s/111.222.333/444\n555\n666/g;p}' test
444
555
666
---
---
444
555
666
---
111
333
---
111
222

如写回文件可使用sed -n '1h;1!H;${g;s/111.222.333/444\n555\n666/g;p}' test>test.1&&mv test.1 test

解释:

  • -n:表示关闭默认的输出,只输出指定的内容。
  • 1h:表示将第一行的内容保存到sed缓冲区(pattern space)中,即把第一行作为模式空间。
  • 1!H:表示对非第一行的行,追加到缓冲区的末尾,即对第二行及以后的行,使用“H”命令将它们追加到模式空间的末尾。
  • ${}:表示到文件结尾为止。
  • g:表示将模式空间的内容拷贝至保持空间。
  • s:表示替换操作,将模式空间中的"111.222.333"替换为"444\n555\n666",其中“.”用来匹配空格或者换行符。
  • p:表示输出模式空间的内容。

因此,上述命令的含义是:首先将第一行保存到模式空间中,然后将后面的所有行追加到缓冲区的末尾,并且将所有行合并到模式空间中;然后对模式空间中的内容进行查找和替换,将其中所有的"111.222.333"字符串替换为"444\n555\n666"字符串;最后输出替换后的结果。

标签:多行,匹配,模式,444,---,sed,n666,333
From: https://www.cnblogs.com/yangx124/p/17377254.html

相关文章

  • Rabbitmq 介绍 、安装、基于Queue实现生产者消费者模型、基本使用、消息安全之ack、du
    师承老刘llnb一、消息队列介绍1.1介绍消息队列就是基础数据结构中的“先进先出”的一种数据机构。想一下,生活中买东西,需要排队,先排的人先买消费,就是典型的“先进先出”1.2MQ解决什么问题MQ是一直存在,不过随着微服务架构的流行,成了解决微服务之间问题的常用工具。应用解耦......
  • CSS实现单行、多行文本溢出显示省略号
    代码单行文字溢出打点div{width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}多行文字溢出打点div{width:100px;overflow:hidden;text-overflow:ellipsis;......
  • 【论文】Range-Focused Fusion of Camera-IMU-UWB for Accurate and Drift-Reduced Lo
    ##Abstract![请添加图片描述](https://img-blog.csdnimg.cn/50c3a8cc38904318b361ef50ea49b889.png)##I.INTRODUCTION为什么需要添加UWB?因为传统的VIO会由于传感器的噪声和计算误差产生累计偏移。所以需要GPS或者是UWB来做修正。UWB则是专注于室内。以前对于UWB的使用一般都是......
  • WCF Error : Manual addressing is enabled on this factory, so all messages sent m
    WCFError:Manualaddressingisenabledonthisfactory,soallmessagessentmustbepre-addressed 回答2Iaddedaservicereferenceasusualandgotthiserror.TurnsoutallIhadtodowastoamendtheclientconfigtouseanendpointconfigwitha......
  • ssh远程连接报错ssh_exchange_identification: Connection closed by remote host
    被远程主机拒绝此类报错为原因1:ssh连接数量过多导致如果问题是偶尔能登录一次,大多不能登录,建议往第一点方向排查[root@localhost~]#cat/etc/ssh/sshd_config|grepMaxSessions#MaxSessions10[root@localhost~]#cat/etc/ssh/sshd_config|grepMaxStart#MaxStartups10......
  • 2023AAAI_Ultra-High-Definition Low-Light Image Enhancement: A Benchmark and Tran
    一.motivition1.之前的数据集分辨率较低二.contribution1.提出两个超高清数据集UHD-4k和UHD-8k2.网络结构LLFormer(网络结构类似2022CVPR_Restormer:EffificientTransformerforHigh-ResolutionImageRestoration.)三.Network 网络架构类似于:2022CVPR_Restormer:......
  • sed -i 's/^ko://' eggnog.KO.raw.txt
    这个命令是在linux系统中运行的sed命令,用于编辑文件eggnog.ko.raw.txt,其中的-i选项表示直接修改原文件。该命令匹配每一行的开始位置(^)后面跟着"ko:"字符串的内容,并将其替换为空字符串,即删除该字符串。在宏基因组分析过程中,可能需要对原始数据文件进行预处理和清洗,比如删除不必要......
  • Nacos修改权重报错caused: errCode: 500, errMsg: do metadata operation failed ;caus
    今天修改Nacos权重时报错如下:caused:errCode:500, caused:errCode:500,errMsg:dometadataoperationfailed;caused:com.alibaba.nacos.con。解决方案:停掉nacos服务将nacos文件夹下data中的protocol文件夹删除重启nacos服务即可 ......
  • BaseDal.cs
    usingPT.Model;usingSqlSugar;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespacePT.DAL{publicclassBaseDal<T,V>whereT:class,new()whereV:class,new()......
  • [网络安全]Less-1 GET - Error based - Single quotes - String:基于错误的GET单引号
    判断注入类型GET1and1=2仍有正常回显,说明该漏洞类型不是数字型注入。GET1'and'1'='2没有回显,说明该漏洞类型为字符型注入。判断注入点个数GETid=1'orderby4--+回显UnknownGETid=1'orderby3--+回显如下:说明注入点个数为3个即可构造语句如下-1'unionselect......