sed删除文本第一个匹配行

源文本如下,要求删除第一个为happy-123456的行。

-----------------------------
aaaaaaa
happy-123456
bbbbbb
asdasawe
happy-123456
dsafsdfsd
sagasdfasd
happy-123456
------------------------------

目标文本:

-----------------------------
aaaaaaa
bbbbbb
asdasawe
happy-123456
dsafsdfsd
sagasdfasd
happy-123456
------------------------------

sed代码1:

sed ‘0,/happy/{//d}‘ file

sed代码2:

sed ‘/happy/{x;/./p;d}‘ file

sed代码3:不建议使用,此代码思路是一次性将所有本行读入模式空间,然后再进行替换。文本较大时,处理起来没有较率,并且占用内存多。

sed ‘:a;N;$!ba;s/happy-123456\n//‘ file

sed删除文本第一个匹配行

时间: 2024-10-11 04:33:00

sed删除文本第一个匹配行的相关文章

vim技巧4 删除/保留文本中匹配行

vim技巧:如何删除/保留文本中特定的行呢? <ol><a href="/ss/ss/www"> show invisibles</a> <a href="/ss/ssg/gg/ff/"> one world one dream</a> 任务1:只保留<a>标签内的标题,而把其他行都删掉:g/re/d 知识点:使用:global与:delete命令 运行一下命令: /\v\<\ /?\w+

Linux之sed:删除某行以及替换

sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为:         sed [-nefri] 'command' 输入文本 常用选项:        -n∶使用安静(silent)模式.在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上.但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来.        -e∶直接在

sed 删除最后几行 和删除指定行 awk使用

sed 删除最后几行 和删除指定行 转载原文链接:http://blog.51cto.com/lspgyy/1305489 sed 想删除文件中的指定行,是可以用行号指定也可以用RE来匹配的. 删除指定的行[可以指定行号删除.匹配字符串来删除] [[email protected] ~]# cat -n seq.txt 1 ok i will help you 2 understand sed usage 3 how to use it 4 and we should use it in vie

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

课题一:删除匹配行的上一行和下一行数据 1.删除匹配行的上一行和下一行: sed -i -e '/string/{n;d}' -e '$!N;/\n.*string/!P;D' filename 2.删除匹配到特定字符所在行的上一行 sed -i -e '$!N;/\n.*string/!P;D' filename 3.删除匹配到特定字符所在行的下一行 sed -i -e '/string/{n;d}' filename 4.sed中使用变量,删除匹配行的上一行和下一行: AA=string #

shell脚本修改文本中匹配行之前的行的方法

原创文件,欢迎阅读,禁止转载. 例子中是把 finish 前一行的 "yes" 改成 "YES"有一个方法就是利用sed+awk一起来完成. [email protected]:~$ cat a.txt line 0 is yes line 1 is yes line 2 is yes line 3 is yes finish line this line is no this line is no #//用awk找到匹配行号算出要修改的行 [email prote

sed命令及vim的末行命令

sed:StreamEDitor,流编辑器,以行为单位对一个或多个文件进行编辑处理:每一次sed都会处理给定文件中的一行内容. 在sed处理文本时,将正在处理的当前行存储到临时的缓冲区中,称为"模式空间":用当前行去匹配给定的PATTERN,如果能匹配,则使用command编辑处理:如果不匹配,则默认输出至标准输出:然后继续处理下一行,直到文件的末尾. 默认情况下,sed的所有处理行为不会影响源文件的内容: 我们一般会使用sed命令来自动编辑一个或多个文件,简化对文件的循环操作: se

流编辑器sed使用总结及利用sed从文本中提取字符串的方法

sed 是一个编辑器,但它与其它大多数编辑器不同.除了不面向屏幕之外,它还是非交互式的,我们常用的vim编辑器则是交互式的. 这意味着必须将要对数据执行的命令插入到命令行或要处 理的脚本中.sed 在一个文件(或文件集)中非交互式.并且不加询问地接收一系列的命令并执行它们.因而,它流经文本就如同水流经溪流一样,因而 sed 恰当地代表了流编辑器,可以对文件或者文件集批量的进行删除 替换 插入 追加等操作. 流编辑器非常适合于执行重复的编辑,这种重复编辑如果由人工完成将花费大量的时间. 其参数可能

Linux查找并删除重复文件的命令行fdupes工具,dupeGuru图形工具

查了几十个网页,找到这个接近满意的解决方案http://unix.stackexchange.com/questions/146197/fdupes-delete-files-aft... 不过正则里面的叹号好像不能起到清除空行的效果,改为d;fdupes --recurse A/ B/ | sed '/^A/d; /^$/d; s/.*/"&"/' | xargs rm 但还有个小问题,如果A里面有重复的文件,但这文件不在B中,fdupes也是会列为结果,导致误删,要再想想

前端学HTTP之报文系列第一篇——起始行

前面的话 如果说HTTP是因特网的信使,那么HTTP报文就是它用来搬东西的包裹了.HTTP报文是在HTTP应用程序之间发送的简单的格式化数据块,每条报文都包含一条来自客户端的请求,或者一条来自服务器的响应.它们由三个部分组成:由起始行.首部和实体的主体部分.本文是HTTP报文系列第一篇——起始行 报文语法 所有的HTTP报文都可以分为两类:请求报文(request message)和响应报文(response message).请求报文会向Web服务器请求一个动作,响应报文会将请求的结果返回给客