sed基本用法整理

sed基础用法整理

sed: Stream Editor 行编辑器

用法:

         sed [Options] ‘AddressCommand’ file…

常用参数:

         -n:静默模式,不显示未操作行,默认会将未操作的行显示。

         -i:直接修改源文件,默认情况下,sed的操作不会对源文件有任何影响,只会将结果显示到显示器。

         -e script:script为sed相关操作,同时执行多个操作,每个-e后,跟一个操作

         -f FILE:FIEL指的是某一文件的路径(绝对,相对均可),将操作保存至文件中,一行一个操作,此方法可以同时执行多个操作。

         -r:使用扩展的正则表达式。

Address:

         1.  startline , endline:需要操作的文件内容范围,以行来界定,用$来表示最后一行

         2.  /RegExp/:正则表达式

         3.  /Pattern1/ , /Pattern2/:第一次被Pattern1匹配到的行开始至第一次被Pattern2匹配到的行之间的行

         4.  LineNumber:精确指定某一行

         5.  Startline,+#:#指的是某一非负整数,从指定行开始至其后的#行

Command:

        1.  d:删除匹配到的行

        2.  p:打印显示符合条件的行

        3.  a \string:在指定行后添加string行,如果需要加多行,可使用\n来换行

        4.  i \string:在指定行前添加string行,用法同3

        5.  r FILE:FIEL指的是某一文件的路径(绝对,相对均可),将指定的文件内容添加至符合条件的行后

        6.  W FILE:FIEL指的是某一文件的路径(绝对,相对均可),将指定范围的内容保存至文件FILE中

        7.  s/Pattern/string/:查找匹配的子串,并替换string,默认只替换每行中第一次被匹配到的串

                s/Pattern/string/g:全局替换,只要匹配到,就替换

                s/Pattern/string/i:忽略大小写

                注:这里的“/”分割线并非固定,也可使用#,@等,但须保证三分割符相同

例子:

1.  使用sed显示/etc/passwd中的第一行,最后一行,五至十行

命令:

显示第一行: [root@localhost~]# sed -n '1p' /etc/passwd

        显示最后一行: [root@localhost~]# sed -n '$p' /etc/passwd

         显示五至十行: [root@localhost~]# sed -n '5,10p' /etc/passwd或

                                        [root@localhost ~]# sed -n '5,+5p'/etc/passwd

结果如图:

              

2.  删除/boot/grub2/grub.cfg文件中的行首的空白

命令:

                  [root@localhost ~]# sed 's/^[[:space:]]*//' /boot/grub2/grub.cfg

结果:

              

3.  删除/boot/grub2/grub.cfg文件中的行首的空白行

命令:

                [root@localhost ~]# sed '/^$/d' /boot/grub2/grub.cfg

结果:

4.  删除/etc/inittab行首的#号

命令:

                [root@localhost ~]# sed 's/^#//g' /etc/inittab

结果:

5.  删除/etc/inittab行首的#号,但要求其后必须包含空格

命令:

               [root@localhost ~]# sed -r 's@^#[[:space:]]+@@g' /etc/inittab

结果:

6.  取出路径/etc/ssh/中的etc子串

命令:

              [root@localhost ~]# echo /etc/ssh/ | sed -r 's@/(.*)/[^/]+/@\1@g'

结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值