sed编辑器

sed:Stream EDitor,流编辑器

用法:

 sed [option]... ‘script’ inputfile...

  script  '地址命令'

常用选项:

 -n:静默模式,不输出模式中的内容只屏幕;

 -e:多点编辑;

 -f /FILE:从指定文件中读取编辑脚本

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

 -i:原处编辑,编辑原文件

地址定界:

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

 2、单地址

  #:指定的行

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

 3、地址范围

  #,#:#行至#行

  #,+#:#行至其后+#行

  /pat1/,/pat2/:第一次pat1匹配到的行至第一次pat2匹配的行

  #,/pat/:#行至第一次pat匹配到的行

编辑命令:

 d:删除

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

 a \text:在被匹配的行后追加文本,使用\n实现多行追加

 \text:在被匹配的行前追加文本,使用\n实现多行插入

 c \text:替换匹配的行

 w /file:将匹配的行保存到file中

 r /file:将/file读取到匹配到的行后

 =:为匹配到的行打印行号

 !:取反条件,表示对未匹配到的行进行编辑

 s///:查找替换,支持试用其他符号

替换标记:

 g:行内全局替换

 p:显示替换成功的行

 w  /file:将替换的行保存到指定文件

模式空间:读取文件中的一行到模式空间,查看是否地址定界,符合则进行编辑

保持空间:未完成编辑的行会暂时放在保持空间

高级编辑命令

 h:把模式空间中的内容覆盖至保持空间中

 H:把模式空间中的内容追加至保持空间中

 g:从保持空间取出数据覆盖至模式空间

 G:从保持空间取出内容追加至模式空间

 x:把模式空间中的内容与保持空间中的内容进行互换

 n:读取匹配行的下一行至模式空间

 N:追加匹配行的下一行至模式空间

 d:删除模式空间中的行

 D:删除多行模式空间中的所有行

实例:

 sed 's@^[[:space:]]\+@@' /file:删除文件以空白字符开头的行行首的空白字符

 sed 's@^#[[:space:]]\+@@' /file:删除文件以#开头后面至少一个空白字符的行行首的#和空白字符

 echo "/etc/sysconfig"| sed 's@[^/]\+/\?$@@':echo一个绝对路径,取出基名

 sed -n 'n;p' file:显示偶数行

 sed '1!G;h;$!d' file:逆向显示文件内容

 sed '$!N;$!D' file:取出文件最后两行

 sed '$!d' file:取出文件最后一行

 sed 'G' file:在每一行后添加一个空白行

 sed 'g' file:把每一行替换成空白行

 sed '/^$/d;G' file:每一行后边都会有一个空白行(原有多个空白行会合并成一个空白行,

没有空白行会添加一个空白行)

 sed 'n;d' file:显示奇数行

 sed -n '1!G;h;$p' file:逆向显示文件

 sed -n '1~2p' file:从第一行步进两行显示

 sed -n '2~2p' file:从第二行步进两行显示



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值