sed详解

sed
流编辑器 stream editer,是以行为单位的处理程序


sed 流编辑器 stream editer


语法
   sed [options] 'command' in_file[s]
options 部分
-n
-e
-i
-f
command 部分
'[地址1,地址2] [函数] [参数(标记)]'

定址的方法 1.数字 2.正则
数字
   十进制数
1 单行   
1,3 范围 从第一行到第三行
2,+4 匹配行后若干行
4,~3   从第四行到下一个3的倍数行
2~3 第二行起每间隔三行的行
$ 尾行
1! 除了第一行以外的行
正则
   正则必须用//包裹起来
   扩展正则需要用 -r 参数或转义




正则介绍


  ^ 行首
  $ 行尾
  . 除了换行符以外的任意单个字符
  * 前导字符的零个或多个
  .* 所有字符
  [] 字符组内的任一字符
  [^] 对字符组内的每个字符取反(不匹配字符组内的每个字符)
  ^[^] 非字符组内的字符开头的行
  [a-z] 小写字母
  [A-Z] 大写字母
  [a-Z] 小写和大写字母
  [0-9] 数字
  \< 单词头 单词一般以空格或特殊字符做分隔,连续的字符串被当做单词
  \> 单词尾


扩展正则 加 -r 参数 或转义
  sed -n '/roo\?/p' /etc/passwd  
  sed -rn '/roo?/p' /etc/passwd
  ? 前导字符零个或一个
  + 前导字符一个或多个
  abc|def abc或def
  a(bc|de)f abcf 或 adef
  x\{m\}   x出现m次
  x\{m,\}  x出现m次至多次(至少m次)
  x\{m,n\} x出现m次至n次




函数
增删改
  a 后插
  c 替换
  i 前插
  d 删除
输入输出
  p 打印匹配的行 一般和 -n 参数连用,以屏蔽默认输出
  r 从文件中读入
  w 写入到文件中
控制流
  !  命令取反 例: 1!d 删除第一行以外的行
  {} 命令组合 命令用分号分隔 {1h;G} 可以理解为 -e 参数的另一种写法


  =  打印行号(输入行的号码,而非处理的次数行号) 例如: sed -n '2{=;p}' infile
  n  读入下一行到模式空间 例:'4{n;d}' 删除第5行
  N  而是追加下一行到模式空间,再把当前行和下一行同时应用后面的命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值