sed命令

一、Linux文本处理三剑客之 sed(Sed stream EDite)正则表达式

  做为行编辑器,对文本进行编辑(以行为单位编辑)编辑器

  注意:sed编辑文件,却不改变原文件3d

二、Sed的工做原理:code

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

三、用法:ip

  sed [参数] “sed本身独立的用法格式语句”字符串

sed [OPTION]... {script-only-if-no-other-script} [input-file]...

四、常见选项input

   -n  不显示默认输出的内容it

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

    匹配IP

       全部的\都不要

      |或者

  -e  script  for while if

  -f  指定脚本文件

  -l  指定文本换行的长度?

五、地址定界方式

(1)直接匹配数值

    sed -n ‘5-7’

(2)d~步长

(3)$ 指定行尾

(4)/正则/

  /正则1/,/正则2/

    sed -n `/k\{5,\}/,$p` abc

    sed -n `^(fd\)\+/.+2p` abc //正则写在前面没有问题,但写在后面会出现问题

(5)0,addr

    addr能够为数字/$/正则表达式

    sed -n `0,/k\{5,\}/p` abc

(6)addr,+N

    配置addr行到,addr后N行

    sed -n `/fd/,+5p` abc

六、常见命令

  p  print 打印(默认在屏幕上显示出来),建议和-n一块儿使用;

  c  替换

    sed "/aaa/c \A" a

  d  删除

    sed "/aaa/d" a

    sed "1,3d" a

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

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

    sed "/patthen/w 新的文件名"y原来的文件名

    sed "/k/w /tmp/aabbcc" abc

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

    语法格式: s/pattern/字符串/       //中间的/能够替换为任意一个特殊字符

    常见命令:g   所有

         \1\2 h和正则表达式的分组相同,实现反向应用;(指定某一个匹配项进行修改替换)

         & d调用前面(pattern)匹配的内容

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

相关文章
相关标签/搜索