zoukankan      html  css  js  c++  java
  • Sed 用法

    sed

      常用选项

        -n:不输出模式空间中的内容至屏幕

        -e:多点编辑(可以多个命令进行)

        -f:每行一个编辑命令

        -r:支持使用扩展正则表达式

        -i:直接编辑原文件

      地址定界

        1、空地址:对全文进行处理

        2、单地址:

          #:指定行

          /pattern/:被此模式所匹配到的每一行

        3、地址范围

          #,#:

          #,+#:

          #,/pat1/

          /pat1/,/pat2/

        4、步进:~

          1~2:所有的奇数行

          2~2:所有偶数行

      编辑命令:

        d:删除

        p:显示模式空间中的内容

        a ext:在行后面追加文本,支持使用 实现多行追加

        i ext:在行前面插入文本,支持使用 实现多行插入

        c ext:把匹配到的行替换为此处指定的文本

        w /PATH/TO/SOMEFILE:保存模式空间匹配到的行至指定的文件中

        r /PATH/FROM/SOMEFILE:读取指定文件的内容至当前文件被模式匹配到的行后面;文件合并

        =:为模式匹配到的行打印行号(sed '/^UUID/=' /etc/fstab)

        !:条件取反(sed '/^#/!d' /etc/fstab)

        s///:查找替换,分隔符可自行指定

          替换标记:

            g:全局替换

            w /PATH/TO/SOMEFILE:将替换成功的结果保存至指定文件中

            p:显示替换成功的行

    练习1:删除/boot/grub2/grub.cfg文件中所有以空白字符开头的行的行首的所有空白字符

      sed 's/^[[:space:]]+//g' /boot/grub2/grub.cfg

    练习2:删除/etc/fstab文件中所有以#开头的行的行首的#号及#后面的所有空白字符

      sed 's/^#[[:space:]]*//g' /etc/fstab

    练习3:输出一个绝对路径给sed命令,取出其目录,其行为类似于dirname

      echo "/var/log/messages" | sed 's/[^/]+$//'

  • 相关阅读:
    朱刘算法---有向图的最小生成树
    527D Clique Problem 判断一维线段没有两辆相交的最大线段数量
    Tex中的引号
    DAY 96 flask05
    DAY 95 flask04
    DAY 94 flask03
    DAY 93 flask02
    DAY 92 flask01
    DAY 91 爬虫05
    DAY 90 爬虫04
  • 原文地址:https://www.cnblogs.com/P-Z-W/p/11075022.html
Copyright © 2011-2022 走看看