• shell-sed


    Sed工作原理

    sed是一款流编辑工具,用来对文本进行过滤与替换工作,sed通过输入读取的文件内容,但一次仅读取一行内容进行某些指令处理后输出,sed更适合处理大数据文件。
    具体请百度,就不一一粘贴了

    sed在处理文本文件的时候,会在内存上创建一个模式空间,然后把这个文件的每一行调入模式永健用相应的命令处理,然后sed使用指令对行进行操作,操作完成之后看看sed中有没有-n参数,没有-n,sed会将行输出到stdout,然后在将第二行读入,然后执行指令进行处理,然后看看有没有-n,没有输出到stdout,直到最后。

    sed的基本语法:
        sed [选项] “命令” 文件
        sed [选项] -f 脚本文件 文件

    文本的操作:

    sed是一个“非交互式的”面向字符流的编辑器,awk是一种负责模式匹配的程序设计语言,它的典型示例是将数据转换成格式化的报表。
    sed和vim一样是编辑器,sed是非交互式的,通过参数完成不同的操作,vim是交互式的,vim需要通知处理文件的那几行才回去处理,sed默认
    会处理文件的所有行,除非你告诉他不处理那几行。
    sed最主要的功能就是替换。拿到文件,文件不符合你的要求把内容做替换,文件格式不符合要求,可以匹配格式做替换

    sed [选项] '[寻址]s/模式/替换/[标志]'

    sed的相关简单操作可以看之前写的一篇文章或者自行百度。不做详细操作

    sed使用正则表达式

    使用正则表达式匹配模式
    元字符
      . 匹配除换行符之外的任意单个字符,awk中可以匹配换行符
      * 匹配任意一个(包括0个)在它前面的字符
      [...] 匹配方括号中的任意一个字符,^为否定匹配,-表示字符的范围
      ^ 作为正则表达式的第一个字符,匹配行的开始,在awk中可以匹配换行符
      $ 作为正则表达式的最后一个字符,匹配行的结尾,在awk中可以匹配换行符
      {n,m} 匹配出现的n到m次,{n}匹配出现n次,{n,} 匹配至少出现n次
       转义字符
    扩展元字符(sed要使用扩展元字符需要使用-r)
      + 匹配前面的正则表达式的一次出现或者多次出现
      ? 匹配前面的正则表达式的零次出现或者一次出现
      | 可以匹配前边或者后边的正则表达式
      () 对正则表达式进行分组
      {n,m}匹配出现的n到m次数,{n}匹配出现n次,{n,}匹配至少出现n次

    sed需要使用单引号,

     具体用法百度。。

    sed指明了及分组引用

    标志flags:
      g 全局更改
      n 可以是1-512,表示第n次出现的情况进行替换
      p 打印模式空间的内容
      w file写入到另一个文件file中
      & 用正则表达式匹配的内容进行替换
      
     回调参数

    具体案例百度,时间不够,之后抽空都会加上。

    sed高级指令

    sed高级指令
    sed只有一段内存空间叫模式空间,但有的时候可能要做一些保存。
    比如:处理第一行第二行第三行,但有时候希望处理完第二行回到第一行去处理,这种情况下基本的sed是做不到的,此时需要高级操作
    高级指令只做了解
        1.比普通命令用的少
        2.所有的命令都可以使用awk去替代
    高级指令分三个组:
        1.处理多汗模式空间(N,D,P)
        2.采用保持空间来保存模式空间的内容并使他客用户后续的命令(H,h,G,g,x)
        3.编写使用分支和条件的指令脚本来更改控制流

    sed空间转换

    我有PDF文档,如果有需要的可以留言,我百度云分享

  • 相关阅读:
    剑指 Offer 22. 链表中倒数第k个节点
    1221. 分割平衡字符串
    1528. 重新排列字符串
    1450. 在既定时间做作业的学生人数
    1266. 访问所有点的最小时间
    1572. 矩阵对角线元素的和
    使用Python进行数据传输
    分布式系统的原理与设计
    分布式缓存
    Centos6 配置最新yum源
  • 原文地址:https://www.cnblogs.com/52-qq/p/9596500.html
Copyright © 2020-2023  润新知