Chinaunix首页 | 论坛 | 博客
  • 博客访问: 813539
  • 博文数量: 120
  • 博客积分: 7531
  • 博客等级: 少将
  • 技术积分: 1253
  • 用 户 组: 普通用户
  • 注册时间: 2005-10-11 12:18
文章分类

全部博文(120)

文章存档

2013年(1)

2012年(7)

2011年(1)

2010年(7)

2009年(15)

2008年(13)

2007年(22)

2006年(45)

2005年(9)

分类:

2010-09-14 17:50:52

今天在一哥们的blog里看到一段shell,当时没有反应过来,后来查了一下,主要是正则的环视功能用的比较少,正好借此来学习一下。
 
history|sed "s#^\s\+[0-9]\+\s\+##g" | grep -oP "(?<=^|\|)\w+"|sort |uniq -c| sort -k1,1nr -k2
 
说明:
#  在s后面表示替换分隔符
^\s  表示以任意空白字符开始
\+ 表示匹配前面的表达式一次或多次
[0-9] 表示匹配数字

-oP 只显示匹配内容,并且把匹配内容当做perl解释
(?<=) 肯定逆序环视,用来定位
^|\| 应该看做^ | \|,表示^或者|
\w+ 表示匹配一个包含数字、字母的单词
(?<=^|\|)\w+ 表示在该单词的左边必须是|或者单词本身的开始

后面的不说了,太简单了。
阅读(1114) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-09-15 14:47:42

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com