zoukankan      html  css  js  c++  java
  • Linux文本处理三剑客----sed

    sed作为行编辑器对文本进行编辑

    sed编辑文件,却不改变源文件

    sed的工作原理:

      指定一个文本文件,一次读取文本文件中每行的内容,读取到模式空间中(PATTERN SPACE),在模式空间中进行文本匹配(正则表达式),对匹配后的内容进行修改(替换,删除,修改,打印,保存)

    用法:

      sed [参数] “sed自己独立的用法格式的语句” [文本文件]

      参数选项:

        -n  拒绝默认显示

        -r  指定使用扩展的正则表达式

          匹配IP

            1、所有的、都不要

            2、|或者

        -e  写script

        -f  指定脚本文件

        -l  指定文本换行的长度

        -i  直接修改文件内容

      地址定界方式

        1、直接匹配数值

          sed -n ‘5,7’p 文本文件

        2、d ~ 步长

          sed -n ‘1~3p’ 文本文件

        3、$指定行尾

          sed -n ‘10~$p’ 文本文件

        4、/正则/

          sed -n '/k{5,}/,$p' 文本文件

        5、0,addr

          addr可以为  数字/$/正则表达式

          sed -n ‘0,/k、{5,、}p’ 文本文件

        6、addr,+N

          配置addr行到addr后N行

          sed -n '/fd/,+5p' 文本文件

      常见命令

        p print 打印

        d  删除

        c  替换

          sed "/aaa/c A" 文本文件

        n N 读取/添加  模式匹配到行的下一行内容,在对其进行操作

        w  保存文件内容到一个新的文件

        s  文本内容替换,默认替换模式空间匹配到的的一项内容

          语法格式:s/pattern/字符串/

            中间的/可以替换为任意一个特殊字符

          g  全部

          1 2 和正则表达式的分组相同,实现反向应用

            指定某个匹配项进行修改替换

          &  调用前面匹配的内容

            sed "s/r..t/&er/g" 文件

          w

          p

      sed的高级应用

        模式空间  --  hold space

        

  • 相关阅读:
    使用pymysql模块进行封装,自动化不可或缺的数据库校验
    使用paramiko模块进行封装,远程操作linux主机
    提高开发效率的 Eclipse 实用操作
    遍历Map的四种方法
    key可以重复的Map集合:IdentityHashMap
    Java根据条件删除Map中元素
    用POI读取具有任意合并单元的excel数据
    【转载】说说JSON和JSONP,也许你会豁然开朗,含jQuery用例
    面向对象的基本原则
    forward和redirect的区别
  • 原文地址:https://www.cnblogs.com/lyali/p/11363551.html
Copyright © 2011-2022 走看看