• sed


    sed [OPTION]... 'script' [input-file] ...
      script:
        地址定界编辑命令

      常用选项:
        -n:不输出模式空间中的内容至屏幕
        -e script, --expression=script:多点编辑
        -f /PATH/TO/SED_SCRIPT_FILE
          每行一个编辑命令
        -r, --regexp-extended:支持使用扩展正则表达式
        -i[SUFFIX], --in-place[=SUFFIX]:直接编辑原文件 

        ~]# sed -e 's@^#[[:space:]]*@@' -e '/^UUID/d' /etc/fstab

      地址定界:
        (1) 空地址:对全文进行处理
        (2) 单地址:
          #:指定行
          /pattern/:被此模式所匹配到的每一行
        (3) 地址范围
          #,#:
          #,+#:
          #,/pat1/
          /pat1/,/pat2/
          $:最后一行
        (4) 步进:~
          1~2:所有奇数行
          2~2:所有偶数行

      编辑命令:
        d:删除
        p:显示模式空间中的内容
        a ext:在行后面追加文本“text”,支持使用 实现多行追加
        i ext:在行前面插入文本“text”,支持使用 实现多行插入
        c ext:把匹配到的行替换为此处指定的文本“text”
        w /PATH/TO/SOMEFILE:保存模式空间匹配到的行至指定的文件中
        r /PATH/FROM/SOMEFILE:读取指定文件的内容至当前文件被模式匹配到的行后面;文件合并
        =:为模式匹配到的行打印行号
        !:条件取反
          地址定界!编辑命令
        s///:查找替换,其分隔符可自行指定,常用的有s@@@, s###等
          替换标记:
            g:全局替换
            w /PATH/TO/SOMEFILE:将替换成功的结果保存至指定文件中
            p:显示替换成功的行

      练习1:删除/boot/grub/grub2.cfg文件中所有以空白字符开头的行的行首的所有空白字符
          ~]# sed 's@^[[:space:]]+@@' /etc/grub2.cfg
      练习2:删除/etc/fstab文件中所有以#开头的行的行首的#号及#后面的所有空白字符
          ~]# sed 's@^#[[:space:]]*@@' /etc/fstab
      练习3:输出一个绝对路径给sed命令,取出其目录,其行为类似于dirname
          ~]# echo "/var/log/messages/" | sed 's@[^/]+/?$@@'
          ~]# echo "/var/log/messages" | sed -r 's@[^/]+/?$@@'

      高级编辑命令:
        h:把模式空间中的内容覆盖至保持空间中
        H:把模式空间中的内容追加至保持空间中
        g:把保持空间中的内容覆盖至模式空间中
        G:把保持空间中的内容追加至模式空间中
        x:把模式空间中的内容与保持空间中的内容互换
        n:覆盖读取匹配到的行的下一行至模式空间中
        N:追加读取匹配到的行的下一行至模式空间中
        d:删除模式空间中的行
        D:删除多行模式空间中的所有行

      示例:
        sed -n 'n;p' FILE:显示偶数行
        sed '1!G;h;$!d' FILE:逆序显示文件的内容
        sed ’$!d' FILE:取出最后一行
        sed '$!N;$!D' FILE:取出文件后两行
        sed '/^$/d;G' FILE:删除原有的所有空白行,而后为所有的非空白行后添加一个空白行
        sed 'n;d' FILE:显示奇数行
        sed 'G' FILE:在原有的每行后方添加一个空白行

  • 相关阅读:
    金蝶KIS 13.0专业版破解方法破解安装流程 金蝶KIS 13.0专业版安装流程
    android利用zbar二维码扫描-(解决中文乱码及扫描区域定义)
    Android 电子邮件发送成功与失败的提示
    WebView的应用 持续积累
    [LeetCode]Implement Stack using Queues
    android开发 Fragment嵌套调用常见错误
    【剑指Offer学习】【面试题55:字符流中第一个不反复的字符】
    UIWebView的使用,简单浏览器的实现
    php 发送与接收流文件
    IHttpModule在webconfig中的注册
  • 原文地址:https://www.cnblogs.com/tyc516/p/13381172.html
Copyright © 2020-2023  润新知