shell脚本编程剑客之一:sed

sed使用详解

格式:sed [OPTION] [‘commands’] file

1、OPTION

  1. -e:输入行多条命令时使用,多项编辑
  2. -i:在原文件修改
  3. -n:按匹配条件输出
  4. -f:指定文件(sed脚本)
  5. -r:支持使用拓展正则表达式

2、地址定界

  1. 不给地址,全文处理
  2. 单地址
    x:指定行号
    /pattern/:正则表达式匹配到的行
  3. 步进:~
    1~2:显示所有奇数行
    2~2:显示所有偶数行
  4. 地址范围
    x,y:x到y行
    x,+x:x到x+1行
    /pat1/,/pat2/:从pat1匹配的行到pat2匹配的行
    x,/pattern/:从x行到正则匹配的行
    x,y!:不包含x到y行

3、编辑命令

(1)、普通编辑命令

  • a \content:在行后面追加文本,可使用\n实现多行追加
  • i \content:在行前面追加文本,可使用\n实现多行追加
  • c \content:替换匹配到的行为content内容,可使用\n实现多行
  • d:删除匹配到的行
  • p:显示模式空间的内容
  • =:为模式空间中的行打印行号
  • !:取反条件
  • w /path/file:保存模式空间匹配到的行到指定文件中
  • r /path/file:从另一个文件中读取输入行文本流至每一行行后
  • s:替换 分隔符支持 s/// s@@@ s###
    替换标记:
    g:全局替换
    p:显示替换成功的行
    w /path/file:将替换后的结果保存到文件中

(2)、高级编辑命令

  • h:把模式空间中的内容覆盖至暂存缓冲区中
  • H:把模式空间中的内容追加至暂存缓冲区中
  • g:把暂存缓冲区中的内容覆盖至模式空间中
  • G:把暂存缓冲区中的内容追加至模式空间中
  • x:交换模式空间和暂存缓冲区的内容
  • n:读取匹配到的行的下一行至模式空间
  • N:追加匹配到的行的下一行至模式空间
  • d:删除模式空间中的行
  • D:删除多行模式空间中的所有行

eg:
sed -n ‘n;p’ FILE:显示偶数行
sed ‘1!G;h;$!d’ FILE:逆向显示文件内容
sed ‘$!N;$!D’ FILE:取出文件后两行
sed ‘$!d’ FILE:取出文件最后一行
sed ‘G’ FILE:每一行后面都追加空白行
sed ‘/^$/d;G’ FILE:将多个空白行合并为一个
sed ‘n;d’ FILE:显示奇数行
sed -n ‘1!G;h;$p’ FILE:逆向显示文件中的每一行

sed -E ‘:a;s@([[:digit:]])([[:digit:]]{3})>@\1,\2@;ta’
:a 和ta 是一对符号,:a是先做一个标记,然后如果ta之前执行成功,则跳转到:a标识符继续执行,达到了循环的效果。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值