Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1172306
  • 博文数量: 286
  • 博客积分: 11086
  • 博客等级: 上将
  • 技术积分: 3245
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-22 17:06
个人简介

闻鸡起舞

文章分类

全部博文(286)

文章存档

2020年(9)

2019年(9)

2018年(6)

2017年(10)

2016年(10)

2014年(3)

2013年(4)

2011年(12)

2010年(16)

2009年(14)

2008年(125)

2007年(48)

2006年(20)

我的朋友

分类: LINUX

2017-09-04 14:17:33

-r, --regexp-extended
        use extended regular expressions in the script.
实例一
[rockfall@tmp]$echo "aaa bbb "|sed -r 's/(.)/A/'
Aaa bbb
[rockfall@tmp]$echo "aaa bbb "|sed  's/(.)/A/'
aaa bbb
[rockfall@tmp]$echo "aaa bbb "|sed  's/\(.\)/A/'
Aaa bbb
实例二
一文件: test.txt,内容如下:
#---------------------------------#
abc1234567890
abc0987654321
xyz1234567890
#---------------------------------#

想输出结果:
1234567890
0987654321
1234567890

sed 命令: sed -n 's/^\([a-z]\{3\}\)\([0-9]\{3,\}\)/\2/p' test.txt 是成功的
但如果用: sed -r -n 's/^\([a-z]{3}\)\([0-9]{3,}\)/\2/p' test.txt 则提示 invalid refrence\2 on 's' commands s RHS
何解?

你都用了-r了,还给括号前加\,当然不行了,还加\的括号就代表原义括号了
 
实例三
替换出常规的ip地址
[root@asmboy shell]# echo 202.038.008.090|sed 's/0\+\([0-9]\+\)/\1/g'
22.38.8.90
[root@asmboy shell]# echo 202.038.008.090|sed -r 's/0+([0-9]+)/\1/g'
22.38.8.90
总之一句话,想少用\  那你就用-r
阅读(360) | 评论(0) | 转发(0) |
0

上一篇:awk相关

下一篇:sed/awk 处理加前5个分割符

给主人留下些什么吧!~~