加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Sed 用法

发布时间:2020-12-13 23:45:09 所属栏目:Linux 来源:网络整理
导读:sed 常用选项 -n:不输出模式空间中的内容至屏幕 -e:多点编辑(可以多个命令进行) -f:每行一个编辑命令 -r:支持使用扩展正则表达式 -i:直接编辑原文件 ? 地址定界 1、空地址:对全文进行处理 2、单地址: #:指定行 /pattern/:被此模式所匹配到的每一行

sed

  常用选项

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

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

    -f:每行一个编辑命令

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

    -i:直接编辑原文件

?

  地址定界

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

    2、单地址:

      #:指定行

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

    3、地址范围

      #,#:

      #,+#:

      #,/pat1/

      /pat1/,/pat2/

    4、步进:~

      1~2:所有的奇数行

      2~2:所有偶数行

?

  编辑命令:

    d:删除

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

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

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

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

    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/[^/]+$//‘

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读