免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2587 | 回复: 13
打印 上一主题 下一主题

[文本处理] [求助]grep \W使用疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-08-14 14:29 |只看该作者 |倒序浏览
cat 111.txt
aerrora
<Error>
[ERROR]
:ERROR:

命令:grep -i "\Werror\W" 111.txt
想要得到的结果:
<Error>
[ERROR]
:ERROR:

当前得到的结果:
aerrora

\W 是非单词字符 \W [^A-Za-z0-9],不知道这个命令为什么不行

论坛徽章:
0
2 [报告]
发表于 2014-08-14 14:31 |只看该作者
grep (GNU grep) 2.5.1  这个版本应该是支持的,是不是我哪写的有问题?

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
3 [报告]
发表于 2014-08-14 14:33 |只看该作者
本帖最后由 yestreenstars 于 2014-08-14 14:34 编辑
  1. [root@localhost ~]# cat i
  2. aerrora
  3. <Error>
  4. [ERROR]
  5. :ERROR:
  6. [root@localhost ~]# grep -i '\Werror\W' i
  7. <Error>
  8. [ERROR]
  9. :ERROR:
  10. [root@localhost ~]# grep --version
  11. GNU grep 2.6.3

  12. Copyright (C) 2009 Free Software Foundation, Inc.
  13. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
  14. This is free software: you are free to change and redistribute it.
  15. There is NO WARRANTY, to the extent permitted by law.

  16. [root@localhost ~]#
复制代码

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
4 [报告]
发表于 2014-08-14 14:34 |只看该作者
回复 1# chinasea100

$ grep -iP "\Werror\W" 111.txt
<Error>
[ERROR]
:ERROR:

   
$ man grep
NAME
       grep, egrep, fgrep, rgrep - print lines matching a pattern
       ....

       -P, --perl-regexp
              Interpret  PATTERN  as  a  Perl  regular  expression  (PCRE, see
              below).  This is highly experimental and grep  -P  may  warn  of
              unimplemented features.


论坛徽章:
0
5 [报告]
发表于 2014-08-14 14:40 |只看该作者
回复 4# jason680


    奇怪,我得到的结果与你的不同

grep -iP "\Werror\W" 111.txt
aerrora

论坛徽章:
0
6 [报告]
发表于 2014-08-14 14:42 |只看该作者
回复 3# yestreenstars


    那是我grep版本的问题?
看网上说的\W对grep 2.5.1是支持的

论坛徽章:
0
7 [报告]
发表于 2014-08-14 14:54 |只看该作者
回复 3# yestreenstars


    发现一个现象,如果不用-i来忽略大小写,\W是可用的

$ grep '\WError\W' 111.txt
<Error>

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
8 [报告]
发表于 2014-08-14 14:54 |只看该作者
回复 7# chinasea100

你通过info grep看看里面有没有\W
   

论坛徽章:
0
9 [报告]
发表于 2014-08-14 14:55 |只看该作者
回复 4# jason680


    用下面的笨方法请解决问题:

$ grep '\W[Ee][Rr][Rr][Oo][Rr]\W' 111.txt
<Error>
[ERROR]
:ERROR:
error

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
10 [报告]
发表于 2014-08-14 14:55 |只看该作者
回复 7# chinasea100

那你man grep看一下支持-i参数不
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP