《Linux Shell》笔记之sed与正则表达式(实例总结) 未完待续

来源:互联网 发布:h3c acl 配置端口访问 编辑:程序博客网 时间:2024/06/08 14:09

 

Sed使用ERE的方法:

  • sed -r
  • 反斜刚+ERE正则表达式,如 \+ 等 

 

1. 实例: 删除一个字符串中的部分头部的字符

文件: test2.sed,内容如下:

abc1234567890

abc0987654321

xyz1234567890

 

期望输出结果:

1234567890

0987654321

1234567890

 

test@sha>sed 's/[a-zA-Z]\{3\}//g' test2.sed

1234567890

0987654321

1234567890

 

2. 实例: 删除一个字符串中的部分字符

输入内容: 2007-12-1222:16:30

期望输出结果: 20071212221630

 

test@sha>echo 2007-12-12 22:16:30| sed 's/[-: ]//g'

20071212221630

 

3. 实例: 替换出常规的ip地址

输入内容:202.038.008.090

期望输出结果:22.38.8.90

 

test@sha>echo 202.038.008.090|sed 's/0\+\([0-9]\+\)/\1/g'

22.38.8.90

test@sha>echo 202.038.008.090|sed -r 's/0+([0-9]+)/\1/g'

22.38.8.90

解题:把0x替换成x,如:02替换2, 03替换成3,09替换成9

详解:

  • s/原字符/替换字符/g  #sed替换文本的方法
  • \+ 表示使用ERE正则表达式+,它匹配一个或者多个前面的字符
  • sed -r 为了使用ERE正则表达式+,等价于\+
  • \([0-9]\+\) 选定字符,它匹配 0-9任意数字和任意一个或多个数字,如:01,11,12,13等
  • \1 引用之前选定的字符
  • 如果使用


0 0
原创粉丝点击