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

    

posted on 2019-08-16 14:08  埃希123  阅读(159)  评论(0编辑  收藏  举报

导航