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 引用之前选定的字符
- 如果使用