您的位置:首页 > 运维架构 > Shell

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

2015-10-29 18:12 573 查看
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 引用之前选定的字符
如果使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: