首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux中删除文件的最后N行小总结

由于我们的输入文件有十行,sed命令:sed 8,$d rumenz.txt将是解决问题的方法。 这样,问题就变成了如何计算第一个要删除的行号8 。 现在,是时候介绍wc命令了。...1来获得要删除的第一个行号。...但是,如果我们可以颠倒输入文件中的行顺序,问题就会变成从文件中删除前 n 行。一个简单的 sed 单行sed 1,n d可以删除前n行。之后,如果我们再次反转线条,我们的问题就解决了。...在第一遍中,它会找出文件中的总行数,在第二遍中,我们打印我们想要保留的那些行: $ awk -v n=3 'NR==FNR{total=NR;next} FNR==total-n+1{exit} 1'...在这个过程中,awk命令将当前行号保存到一个名为total的变量中。第一遍后,total变量保存了输入文件中的总行数 FNR==total-n+1{exit} 1:这是第二遍。

7.8K10

在VimVi中删除行、多行、范围、所有行及包含模式的行

使用linux服务器,免不了和vi编辑打交道,命令行下删除数量少还好,如果删除很多,光靠删除键一点点删除真的是头痛,还好Vi有快捷的命令可以删除多行、范围。 删除行 在Vim中删除一行的命令是dd。...删除多行 要一次删除多行,请在dd命令前添加要删除的行数,例如,要删除五行,请执行以下操作: 1、按Esc键进入正常模式。 2、将光标放在要删除的第一行上。...删除包含模式的行 基于特定模式删除多行的语法如下: :g//d 全局命令(g)告诉删除命令(d)删除所有包含的行。 要匹配与模式不匹配的行,请在模式之前添加感叹号(!): :g!...//d 模式可以是文字匹配或正则表达式,以下是一些示例: :g/foo/d-删除所有包含字符串“foo”的行,它还会删除“foo”嵌入较大字词(例如“football”)的行。 :g!.../foo/d-删除所有不包含字符串“foo”的行。 :g/^#/d-从Bash脚本中删除所有注释,模式^#表示每行以#开头。 :g/^$/d-删除所有空白行,模式^$匹配所有空行。

107.7K32
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Sed..

    * # 匹配0个或多个字符,如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行。 [] # 匹配一个指定范围内的字符,如/[sS]ed/匹配sed和Sed。...: sed -n '/test/,/check/p' file 打印从第5行开始到第一个包含以test开始的行之间的所有行: sed -n '5,/^test/p' file 对于模板test和west...里的内容被读进来,显示在与test匹配的行后面,如果匹配多行,则file的内容将显示在所有匹配行的下面: sed '/test/r file' filename 写入文件:w命令 在example中所有包含...在sed处理文件的时候,每一行都被保存在一个叫模式空间的临时缓冲区中,除非行被删除或者输出被取消,否则所有被处理的行都将 打印在屏幕上。...Sed对于脚本中输入的命令非常挑剔,在命令的末尾不能有任何空白或文本,如果在一行中有多个命令,要用分号分隔。以#开头的行为注释行,且不能跨行。

    1.6K20

    【linux命令讲解大全】081.sed:功能强大的流式文本编辑器

    处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。...* # 匹配0个或多个字符,如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行。 [] # 匹配一个指定范围内的字符,如/[sS]ed/匹配sed和Sed。.../nologin 选定行的范围:,(逗号) 所有在模板test和check所确定的范围内的行都被打印: sed -n '/test/,/check/p' file 打印从第5行开始到第一个包含以test...行后,退出sed: sed '10q' file 直到找到第一个匹配项,退出sed: [root@node4 ~]# sed '/nginx/q' nginx.yml --- - hosts: nginx...保持和获取:h命令和G命令 在sed处理文件的时候,每一行都被保存在一个叫模式空间的临时缓冲区中,除非行被删除或者输出被取消,否则所有被处理的行都将 打印在屏幕上。

    25710

    linux中sed命令总结

    处理时,把当前处理的行存储在临时缓冲区中,称为模式空间(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。...* # 匹配0个或多个字符,如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行。 [] # 匹配一个指定范围内的字符,如/[sS]ed/匹配sed和Sed。...: sed -n '/test/,/check/p' file 打印从第5行开始到第一个包含以test开始的行之间的所有行: sed -n '5,/^test/p' file 对于模板test和west...的内容被读进来,显示在与test匹配的行后面,如果匹配多行,则file的内容将显示在所有匹配行的下面: sed '/test/r file' filename 写入文件:w命令 在example中所有包含...h命令和G命令 在sed处理文件的时候,每一行都被保存在一个叫模式空间的临时缓冲区中,除非行被删除或者输出被取消,否则所有被处理的行都将 打印在屏幕上。

    3.2K20

    【数据处理】sed原理及使用举例(快速理解核心)

    如例子所示,第一条命令删除1至5行,第二条命令用check替换test。命令的执行顺序对结果有影响。如果两个命令都是替换命令,那么第一个替换命令将影响第二个替换命令的结果。...* #匹配零或多个字符 如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行。 [] #匹配一个指定范围内的字符,如/[Ss]ed/匹配sed和Sed。...$ sed -n '/test/,/check/p' example #打印从第五行开始到第一个包含以test开始的行之间的所有行。...表示若匹配不到 D,d 模式空间,删除 模式空间没有回车符,D/d一样 D/d执行后,都会跳到下一行(不管模式空间是否有内容) 简单用法 #删除第N行 sed -i 'Nd' filename #删除第...'1,2d;1,2d' 输出的应该是第4和第5行,因为第二行删除后,第一个1,2d关闭 再读入第3行时,匹配到第2个1,2d,因为3>1,所以匹配成功,执行d删除第3行 继续读入第4行后,发现2<4,

    3.2K546

    sed入门详解教程 原

    处理时,把当前处理的行存储在临时缓冲区中,成为"模式空间",接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。...例子1: sed -n ‘/nihao/d’ message 说明:将匹配到nihao的行执行删除操作。...例子2: sed -n ‘/^$/d’ message 说明:删除空行 例子3: sed -n ‘/^TS/,/^TE/d’ message 说明:匹配以TS开头的行到TE开头的行之间的行,把匹配到的这些行删除...n:读入下一行到模式空间,例:’4{n;d}’ 删除第5行。 N:追加下一行到模式空间,再把当前行和下一行同时应用后面的命令。 P:输出多行模式空间的第一部分,直到第一个嵌入的换行符位置。...在执行完脚本的最后一个命令之后,模式空间的内容自动输出。P命令经常出现在N命令之后和D命令之前。 D:删除模式空间中第一个换行符的内容。

    1.5K30

    shell脚本快速入门之-----正则三剑客之二sed用法大全!!!

    比方如下这个 [root@localhost ~]# sed -n ‘4,/the/p’ test.txt //输出从第 4 行至第一个包含 the 的行 6、 删除符合条件的文本(d) [root...sed 's/the/THE/' test.txt //将每行中的第一个the 替换为 THE sed 's/l/L/2' test.txt //将每行中的第 2 个 l 替换为 L sed 's/the...sed '3aNew' test.txt //在第 3 行后插入一个新行,内容为New sed '/the/aNew' test.txt //在包含the 的每行后插入一个新行,内容为 New sed...'3aNew1\nNew2' test.txt //在第 3 行后插入多行内容,中间的\n 表示换行 9、a模式后插 sed '/hello/aworld' test 表示把word加在含有hello后一行...-n '/bash$/wfile' passwd 在w模式下,可以直接写入文件,这是追加的过程,不会覆盖原文 三、sed中-n和-p以及不加参数 不加参数默认输出全部 包括匹配到的参数

    1.6K31

    linux sed 批量替换字符串 原

    替换:s命令 $ sed 's/test/mytest/g' example 在整行范围内把test替换为mytest。如果没有g标记,则只有每行第一个匹配的test被替换成mytest。...$ sed -n '5,/^test/p' example 打印从第五行开始到第一个包含以test开始的行之间的所有行。...从文件读入:r命令 $ sed '/test/r file' example file里的内容被读进来,显示在与test匹配的行后面,如果匹配多行,则file的内容将显示在所有匹配行的下面。...下一个:n命令 $ sed '/test/{ n; s/aa/bb/; }' example 如果test被匹配,则移动到匹配行的下一行,替换这一行的aa,变为bb,并打印该行,然后继续。...保持和获取:h命令和G命令 $ sed -e '/test/h' -e '$Gexample 在sed处理文件的时候,每一行都被保存在一个叫模式空间的临时缓冲区中,除非行被删除或者输出被取消,否则所有被处理的行都将打印在屏幕上

    5.4K30

    Linux中sed命令简单介绍

    grep:常用来做全局数据的查询定位 sed命令作用: 对Linux中的文本文件进行逐行读取,读到匹配的行按照既定的规则进行处理 语法介绍 sed [选项] [编辑命令] [文件] 常用选项包括:...,字符串替换,通常这个 s 的动作可以搭配正规表示法; g :全局,如果不使用 g 标记,sed 的替换命令只会替换每一行中的第一个匹配项。...当使用 g 时,它会替换行中的所有匹配项; sed实战: 查询(p/n命令) cat 1.txt 1 2 3 4 5 6 7 8 9 10 // 查询第8行数据 sed '8p' 1.txt ('8p...\+//g' 1.txt (' \+'表示多个空格,在正则表达式中,'+'通常用来表示一个或多个匹配。...如果不加'/g'则只删第一个匹配到的空格) 1a 12b 6c 5d // 删除每行行首的空格 sed 's/^ \+//' 1.txt ('^ \+') 1 a 12 b 6

    1.9K10

    linux基础命令介绍十:文本流编辑 sed

    ‘sed命令’,每个命令都可以有地址与之相关联,地址可以看成是条件,只有在条件成立时,相关的命令才被执行;所有可执行命令都处理完毕后,仍处于模式空间中的字符串会被追加一个换行符后打印输出;之后读取下一行输入做同样的处理...如果第二个地址是个正则表达式,则不会对第一个地址匹配行进行第二个地址的匹配;如果第二个地址是行号,但小于或等于第一个地址匹配行行号,则只会匹配一行(第一个地址匹配行)。...10、addr1,~n表示从匹配地址addr1开始,直到n的倍数行为止。 如果没有给出地址,所有的行都会匹配;在地址或地址范围后追加字符!表示对地址取反,所有不匹配的行才会被处理。...--开始,在匹配到-->之前一直执行N,匹配到-->之后删除模式空间中内容 #如在nagios的配置文件中,有许多define host{...}的字段,如下所示: define host{ use windows-server...更多例子 1、删除匹配行的上一行和下一行 #例如输入数据为命令seq 10的输出(当然也可以是任意其他文件内容) #要求删除匹配5那一行的前一行和后一行 [root@centos7 temp]# seq

    1.1K30

    sed直接替换文件内容 原

    $ sed 's/test/mytest/g' example-----在整行范围内把test替换为mytest。如果没有g标记,则只有每行第一个匹配的test被替换成mytest。...$ sed -n '5,/^test/p' example-----打印从第五行开始到第一个包含以test开始的行之间的所有行。...$ sed '/test/r file' example-----file里的内容被读进来,显示在与test匹配的行后面,如果匹配多行,则file的内容将显示在所有匹配行的下面。...$ sed '/test/{ n; s/aa/bb/; }' example-----如果test被匹配,则移动到匹配行的下一行,替换这一行的aa,变为bb,并打印该行,然后继续。...$ sed -e '/test/h' -e '$G example-----在sed处理文件的时候,每一行都被保存在一个叫模式空间的临时缓冲区中,除非行被删除或者输出被取消,否则所有被处理的行都将打印在屏幕上

    3.9K50

    sed & awk 第二版学习(四)—— 基本 sed 命令

    # 注释语法 #[n] 可以在脚本的任何地方放置注释,甚至是跟在命令行的后面。注释行的第一个字符必须是“#”号。...删除 删除命令采用一个地址,如果行匹配这个地址就删除模式空间的内容。删除命令还是一个可以改变脚本中的控制流的命令。...d 命令删除整行,而不只是删除行中匹配的部分。要删除行的一部分,可以使用替换命令并制定一个空的替换。...实际上,next 命令导致输入的下一行取代模式空间的当前行。脚本中的后续命令应用于替换后的行。如果没有抑制默认输出,那么在替换发生之前会打印当前行。...它只适用于单行地址,一旦找到和地址匹配的行,脚本就结束。在将编辑操作写回到原始文件的任何程序中不要使用 q 命令。在执行 q 命令后,就不会再产生输出。

    10010

    Sed三剑客入门与进阶

    c 把选定的行改为新的文本(类似于替换)。 d 删除选择的行 D 删除模板块的第一行 s 替换指定字符 h 拷贝模板块的内容到内存中的缓冲区。 H 追加模板块的内容到内存中的缓冲区。...* 匹配0个或多个字符,如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行。 [] 匹配一个指定范围内的字符,如/[ss]ed/匹配sed和Sed。...d;s/.*=//' } WeiyiGeek.奇数与偶数行打印 _总结_: sed 匹配是贪婪模式匹配到越多; 正则扩展命令sed之-r选项 描述:使用了该-r选择后就能使用正则表达式的扩展语法,在写一些正则符号前无需添加...## #-n选项和p命令一起使用表示只打印那些发生替换的行(并未写入文件中) $ sed -n 's/test/TEST/p' file $ sed 's/book/books/' file #将文件中的第一个...# 描述:就是正则表达式中的元组即\(...\)包含匹配的字符串,即匹配给定样式的其中一部分, \(..\) 用于匹配子串,对于匹配到的第一个子串就标记为 \1,依此类推匹配到的第二个结果就是 \2,例如

    3.1K10

    上古神器 sed 教程详解,小白也能看的懂

    简单描述 sed 工作原理: sed 从输入文件中读取内容,每次处理一行内容,并把当前的一行内容存储在临时的缓冲区中,称为 模式空间。...s/hello/A/g' file.txt (二)正则定址 正则定址,是通过正则表达式的匹配来确定需要处理编辑哪些行,其它行就不需要处理 # 将匹配到hello的行执行删除操作,d 表示删除 $ sed...$ sed -n 's/i/A/w b.txt' file.txt $ sed -n 's/i/A/' file.txt > b.txt 注意,sed 修改匹配到的内容后,默认行为是不保存到原文件,...(二)追加行子命令a 子命令 a 表示在指定行下边插入指定的内容行; # 将所有行下边都添加一行内容A $ sed 'a A' file.txt # 将文件中1-2行下边都添加一行内容A $ sed '...这个很容理解 # 将文件中1-3行内容删除 $ sed '1,3d' file.txt # 将文件中This开头的行内容删除 $ sed '/^This/d' file.txt (六)设置行号子命令=

    2.5K30

    快速理解linux流编辑器sed命令

    是命令集合 file 是要编辑的文件路径 下面通过一些例子来了解sed的基本用法 (1)删除 d 命令用来删除 $ sed '1d' Sed.txt 将Sed.txt的第一行删除后输出到屏幕.../' Sed.txt 替换Sed.txt中每行的第一个abc为ABC 也可以指定替换的个数,如想替换两个 $ sed 's/abc/ABC/2' Sed.txt 利用g选项,可以完成所有匹配值的替换...命令可以在匹配行之前插入 a 命令可以在匹配行之后插入 在第二行前插入文本 $ sed '2 i test' Sed.txt 在第二行后插入文本 $ sed '2 a test' Sed.txt...也可以在匹配行的上一行插入内容 例如在匹配到abc的行的上一行插入 $ sed '/abc/i\test' Sed.txt (4)打印 使用 p 命令可进行打印,这里使用sed命令时加 -n...参数,表示不打印没关系的行 打印出文件中的第一行 $ sed -n '1p' Sed.txt 使用p命令,只打印实际处理过的行,简化输出 $ sed -n 's/abc/ABC/p' Sed.txt

    1.1K90

    sed & awk 第二版学习(三)—— 编写 sed 脚本

    原始的输入文件未被改变,编辑命令修改原始行的备份并将修改后的备份发送到标准输出。 一、在脚本中应用命令 一次一行的设计的一个优点是 sed 比交互式屏幕编辑程序更适合处理大文件。...删除输入的最后一行: $d 当正则表达式作为地址提供时,命令只影响于这个模式匹配的行。正则表达式必须封闭在斜杠(/)中。...删除从第一行直到第一个空行的所有行: 1,/^$/d 可以把第一个地址看做是启动动作,并把第二个地址看做是禁用动作。sed 没办法先行决定第二个地址是否会匹配。...一旦匹配了第一个地址,这个动作就将应用于这些行,于是命令应用于所有随后的行直到第二个地址被匹配。上例中如果没有空行,那么将删除所有行。...删除 .TS 开头到(包含).TE 开头的行中的空行: /^\.TS/,/^\.TE/{ /^$/d } 左大括号必须在行末,而且右大括号必须独占一行。要确保在大括号后没有空格。

    7710

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券