美文网首页
sed 命令

sed 命令

作者: 麟之趾a | 来源:发表于2020-05-25 20:08 被阅读0次

    web处理三剑客

    grep ,egrep,fgrep 文本过滤器
    sed: stream editor,流编辑器
    awk: 文本格式化工具,报告生成器

    image.png

    每次sed从文本中取到一行,放到模式空间,会把模式空间内容输出,如果匹配到这一行就进行编辑,如果没有匹配到进行默认输出

    sed [option] 'script'  [input-file]
      script: 地址定界编辑命令
    常用选项:
     -n: 不输出模式空间内容至屏幕
    -e script:多点编辑
    -f /PATH/TO/SED_SCRIPT_FILE  
    每一行一个编辑命令
    -r: 支持扩展正则表达式
    -i:直接编辑原文件
    地址定界
    1)空地址:对全文进行处理
    2)单地址:
          #:指定行
        /pattern/: 被此模式匹配的每一行
    3) 地址范围
        #,#: 从第几行到第几行
        #,+#: 3,+8 从第三行开始,往下进行8行。3行,往下8行一共9行
        #,/pat1/
        /pat1/,/pat2/
    4) 步进地址:~
     1~2: 1  3  5  7奇数行
     2~2:所有的偶数行
    编辑命令:
        d:删除模式空间的内容
        sed '1~2d'  /etc/fstab  显示偶数行
        p:打印模式空间内容
        a: a \text: 在行后面追加文本text,支持使用\n实现多行追加
        i: i \text:在行前面插入文本text,支持使用\n.实现多行插入
        c: \text: 把匹配的行替换此处指定的文本text
        w /PATH/TO/SOMEFILE: 读取指定文件的内容至当前文件,被模式匹配到的行处
        r /PATH/FROM/SOMEFILE: 读取指定的文件内容至当前文件被模式匹配到的行处
        =: 为模式匹配打印行号
        !:条件取反,放在编辑命令之前
    地址定界!编辑命令
      s///:查找替换,其分隔符可自行指定,常用的由s@@@,s###等
      替换标记
       g:全局替换
       w /PATH/TO/SOMEFILE: 将替换成功的结果保存至指定文件
       p:显示替换成功的行
    
    高级编辑命令
    h:把模式空间的内容覆盖到 hold space 保持空间
    H:把模式空间追加到保持空间
    g:把保持空间内容,覆盖至模式空间
    G:把保持空间内容,追加到模式空间
    x:把模式空间的内容与保持空间的内容替换
    n:读取匹配的行的下一行至模式空间,源先行被覆盖
    N:追加读取匹配到的下一行,至模式空间
    d:删除模式空间的行
    D:删除多行模式空间的所有行
    多行模式:当N读取多行时,据说多行模式
    示例:
    sed -n 'n;p'  FILE  显示偶数行
    sed '1!g;h;$!d/' FILE 逆序显示
    sed '1$!N;$!D' FILE  取出文件后两行
    sed 'n;d' FILE  显示奇数行
    ; 命令分隔符
    

    相关文章

      网友评论

          本文标题:sed 命令

          本文链接:https://www.haomeiwen.com/subject/eiluahtx.html