知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

linux下grep命令查找带有tab(退格)的字符

发布时间:2014-09-05 16:43:31作者:知识屋

 

需要在日志文件统计删除的主帖,而日志文件是tab(退格)字符隔开的;假设日志文件名叫delete.log。

 

保存格式和保存的数据如下,

 

删除日期            帖子类型(11为主帖,12为回帖)    帖子id    操作人id

 

 2011-11-01 00:05       12      71163578        1153089

 2011-11-01 00:19       11      71163800        134379

 2011-11-01 00:19       12      71163801        134379

 2011-11-01 00:20       11      71151662        2064561

 2011-11-01 00:42       11      71163897        719476

 2011-11-01 01:05       11      71164159        2215597

 2011-11-01 03:44       12      71164712        2317663

 2011-11-01 04:40       12      71164820        111

 2011-11-01 04:46       12      71164841        622530

 2011-11-01 05:03       12      71164881        1999836

 2011-11-01 06:23       11      71163794        32254

 2011-11-01 06:27       12      71162281        32254

 2011-11-01 07:12       11      71165688        2296120

 2011-11-01 07:12       11      71165682        2296120

 2011-11-01 07:38       12      71165870        11568

 2011-11-01 07:49       11      71142268        1020

 2011-11-01 08:20       12      71167000        634940

 2011-11-01 08:38       11     70948995        604153

 2011-11-01 08:40       12      71167508        2100858

 2011-11-01 08:59       12      71168173        952148

 

 

 

从日志文件上,如果用命令cat delete.log |grep '11'|wc ,则会把所有日志都统计出来。

 

可以看到每行的11的左右都有tab(退格)符,所以可以通过“tab(退格)11tab(退格)”的正则表达式来精确查找。

 

但如果使用命令cat delete.log |grep '/t11/t'|wc 或者cat delete.log |grep '//t11//t'|wc 确一个也查不出来。

 

 

 

其实在linux中要正确匹配tab(退格)符有两种方式

 

1:用grep  $'/t'       你的文件

 

2:用grep '按CTRL+V 键,再按TAB键'      你的文件

 

 

 

再回到上面的问题,则可以用以下的命令

 

cat delete.log |grep $'/t'11$'/t' |wc

 

或者

 

cat delete.log |grep ‘CTRL+V,TAB11CTRL+V,TAB’|wc

摘自 rj042的专栏

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜