首页 > 其他分享 >sed进阶

sed进阶

时间:2022-10-17 23:45:20浏览次数:41  
标签:进阶 标签 xxx sed file 空间 target

sed进阶

  • 空间

    • 模式空间

      • sed编辑器当前正在工作的所在行

        • 多行处理

          • 跳过行

            • n

              • 匹配到所在行后,跳转到下一行执行操作

                • sed '/target/{n;xxx}' file
          • 合并行

            • N

              • 匹配到所在行后,把下一行合并到模式空间执行操作

                • sed '/target/{N;xxx}' file
          • 合并行后删除行

            • D

              • 匹配到所在行后,把下一行合并到模式空间,并删除模式空间的第一行

                • sed 'N;/target/D' file
          • 合并行后打印行

            • P

              • 匹配到所在行后,把下一行合并到模式空间,并打印模式空间的第一行

                • sed 'N;/target/P' file
    • 保持空间

      • sed编辑器临时保存行的缓冲区

        • 命令

          • h

            • 已匹配的模式空间复制到保持空间后打印

              • sed -n '/target/{h;p}' file
          • H

            • 已匹配模式空间附加到保持空间后打印

              • sed -n '/target/{H;p}' file
          • g

            • 已匹配把保持空间复制到模式空间后打印

              • sed -n '/target/{g;p}' file
          • G

            • 已匹配把保持空间附加到模式空间后打印

              • sed -n '/target/{G;p}' file
          • x

            • 已匹配交换模式空间和保持空间的内容后打印

              • sed -n '/target/{x;p}' file
  • 排除命令

    • 让原来起作用的命令不起作用

      • 命令

        • !

          • 除了匹配行以外的所有行都打印

            • sed -n '/target/!p' file
  • 改变执行顺序

    • 分支

      • 命令

        • b

          • 格式

            • [address] b [label]
          • 无标签

            • 跳过不执行指定行

              • sed '{[address]b; /xxx/xxx/;/xxx/xxx/}' file
          • 有标签

            • 匹配行后跳转到标签,执行标签命令,处理后执行剩余的非标签命令

              sed '{/target/b  jump1  /xxx/xxx/;  /xxx/xxx /   
               :jump 
               /xxx/xxx } '  file
              
        • t

          • 格式

            • [address] t [label]
          • 无标签

            • 测试t前面的命令是否执行成功,接着执行t后面的命令

              • sed '{/xxx/xxx/ t /xxx/xxx/}' file
          • 有标签

            • 测试t前面的命令是否执行成功,不成功则执行标签命令,最后处理剩余的非标签命令

              • sed '{/xxx/xxx/ t jump1 /xxx/xxx/ :jump /xxx/xxx/} '
  • 实战

    • 处了最后一行,每行后面插入空白行

      • sed '$!G' file
    • 除了最后一行,先删除已有空白行,再插入空白行

      • sed '/^$/d; $!G' file
    • 在每行前一行添加行号

      • sed '=' file
    • 在每行行首添加行号

      -sed '=' file | sed 'N; s/\n/ /'

    • 打印最后一行

      • sed -n '$p' file
    • 打印后十行

      • sed '{ :start ;$q;N;11,$D ;b start}' file
    • 只删除连续空行

      • sed '/./,/^$/!d' file
    • 删除开头的空白行

      • sed '/./,$!d' file
    • 删除结尾的空白行

      • sed '{ :start /^\n*$/ { $d; N; b start}}'
    • 删除所有的html标签

      • sed 's/^<[^>]*>//g' file

标签:进阶,标签,xxx,sed,file,空间,target
From: https://www.cnblogs.com/tang-learning/p/16801151.html

相关文章

  • Python reversed函数及用法
    eserved()是Pyton内置函数之一,其功能是对于给定的序列(包括列表、元组、字符串以及range(n)区间),该函数可以返回一个逆序序列的迭代器(用于遍历该逆序序列)。reserved()......
  • Event-Based Vision Enhanced: A Joint Detection Framework in Autonomous Driving
    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!2019IEEEINTERNATIONALCONFERENCEONMULTIMEDIAANDEXPO(ICME),pp.1396-1401,(2019) ABSTRACT由于......
  • python爬虫从0到1 -ajax的get请求进阶
    前面说到获得了第一页的数据。而我们要获得后面的数据时,它们的url地址并不一样。详见下图:>第一页网址https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%A7%......
  • @Value进阶玩法指南(转自微信公众号苏三说技术)
    前言对于从事java开发工作的小伙伴来说,spring框架肯定再熟悉不过了。spring给开发者提供了非常丰富的api,满足我们日常的工作需求。如果想要创建bean实例,可以使用@Control......
  • Event-based Vision meets Deep Learning on Steering Prediction for Self-driving C
    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!CVPR2018 Abstract事件相机是仿生视觉传感器,可以自然地捕捉场景的动态,过滤掉多余的信息。本文提出了一种......
  • python进阶之路15 之异常处理、生成器相关
    异常捕获处理1.异常异常就是代码运行报错行业术语叫bug代码运行中一旦遇到异常会直接结束整个程序的运行我们在编写代码的过程中要尽可能避免2.异常分类......
  • ASP.NET Core中app.UseDeveloperExceptionPage和app.UseExceptionHandler方法有什么用
    在新建一个ASP.NETCore项目后,在项目Startup类的Configure方法中默认会添加两个方法的调用,app.UseDeveloperExceptionPage和app.UseExceptionHandler,如下所示://Thisme......
  • Vue.$nextTick的原理是什么-vue面试进阶
    原理性的东西就会文字较多,请耐下心来,细细品味Vue中DOM更新机制当你气势汹汹地使用Vue大展宏图的时候,突然发现,咦,我明明对这个数据进行更改了,但是当我获取它的时候怎么是上......
  • Scanner进阶
    Scanner进阶 packagecom.yyr.base.scanner;importjava.util.Scanner;publicclassDemo05{publicstaticvoidmain(String[]args){//我们要输......
  • 31、JAVA进阶——XML知识
    目录​​一、认识XML​​​​二、 XML文档结构​​​​1.XML声明​​​​2.标签​​​​3.根元素​​​​4.元素​​​​5.属性​​​​6.XMl中的特殊字符处理​​​......