免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Linux9253
打印 上一主题 下一主题

sed和awk关于小括号里面的匹配 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2012-05-15 16:28 |只看该作者
sed 's/\(^\|)\)[^(]*\((\|$\)/ /g'

看不懂啊。
^\|) 这匹配什么?
(\|$  这又匹配啥?

请求讲解,\|好像以前在哪看到代表结束的意思。

论坛徽章:
0
12 [报告]
发表于 2012-05-15 22:18 |只看该作者
回复 11# o06v90o
这里有你要的答案,好好看看

http://blog.chinaunix.net/uid-10540984-id-313282.html
   

论坛徽章:
0
13 [报告]
发表于 2012-05-16 10:08 |只看该作者
id root|sed -r 's/[^\( \)]*\(|\)/ /g'

论坛徽章:
0
14 [报告]
发表于 2012-05-16 16:27 |只看该作者
谢谢啊,明白了。

论坛徽章:
0
15 [报告]
发表于 2012-05-28 16:23 |只看该作者
我对大伙那是相当的感谢、前段时间忙、没时间看。刚上来就这么多答案
看到你们写的那么简单、感觉自己笨死了、总之谢谢大家、

论坛徽章:
0
16 [报告]
发表于 2012-05-28 17:38 |只看该作者
回复 1# Linux9253

awk:
  1. id root |awk -F [")""("] ' {for (i=2;i<=NF;i+=2) printf("%s ",$i)}{printf ("%s\n","")}'
复制代码
sed:
  1. id root | sed -r  's/[^ |^,]+\(//g;s/[\),]/ /g'
复制代码

论坛徽章:
0
17 [报告]
发表于 2012-05-30 11:10 |只看该作者
sed的代码真的博大精深

论坛徽章:
0
18 [报告]
发表于 2013-01-19 09:22 |只看该作者
huohulwz 发表于 2012-05-13 22:20


这个很好用,但不明白意思,能不能解释一下?

招聘 : 项目经理
论坛徽章:
0
19 [报告]
发表于 2013-01-20 14:09 |只看该作者
回复 18# mygod100


    不好意思, 这代码挺傻的, 别计较, 其他同学的代码更好.

  1. # 丢弃 '(' 和 它之前的字符, 得出这个东西 'root)root)root)bin) ...'
  2. s/[^()]*(//g
  3. # 把 ')' 替换成空格
  4. y#)# #
  5. # '#' 只是与前面语句的 '/' 不雷同, 瞧起来好一些, 其实就是这句 'y/)/ /'
  6. # 此代码的可复用性很低, 场景依赖性太大, 临时工的临时上阵水准
复制代码

论坛徽章:
0
20 [报告]
发表于 2013-01-20 21:14 |只看该作者
回复 9# 07101060407


    1,此例来说,后面部分可以不要

       sed 's/[^()]*(\([^()]*\))/\1 /g'
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP