SED NOTES

SED


语言结构

  • /addrpattern1/[,/addrpattern2/][!]command
  • /addrpattern1/[,/addrpattern2/][!]{command1; command2; …}
  • /addrpattern1/[,/addrpattern2/][!]{command1; command2; …};/addrpattern1/[,/addrpattern2/][!]{command1; command2; …};

常用命令

  • s 对匹配行进行指定模式替换
    • s/pattern/replace/[g]
    • 如果 这里的模式和地址模式相同,则可以简写成 s//replace/[g]
  • d 删除匹配行
    • /addrpattern/d
  • p 输出匹配行
    可以配合s命令一起,也可以单独使用
    • s/pattern/replace/p
    • /pattern/p
  • = 对匹配行之前插入行数信息
    • /addrpattern/=
  • i 在匹配行之前插入行
    • /addrpattern/i\text
  • a 在匹配行之后插入行
    • /addrpattern/a\text
  • r 将指定文件读到模式空间
    • /addrpattern/r myfile
    • /addrpattern/{r myfile
      command}
    • /addrpattern/{r myfile
      N}
      执行N时,如果有下一行,会立即输出 r 读入的内容,如果没有下一行,则先输出模式空间内容,再输出 r 读入的内容

原理


将待处理文本的第一行内容拷贝到模式空间,匹配第一个模式,若匹配进行相应操作,若不匹配则匹配模式命令序列中下一个模式并进行处理,直到所有模式匹配都处理完,然后取文本下一行内容覆盖模式空间当前内容,如此反复,直到处理完所有文本所有行。

常用示例


  • 去除空白行 s/^[[:space:]]*$//
  • 打印制定行 1,5p, 1p, /pattern/p, /pattern1/,/pattern2/p, 加 -n 选项可以禁止模式空间内容的自动输出
  • 输出第一个匹配 /pattern/{p;q}
  • 输出第一行到第一个匹配 0,/pattern/p
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值