Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2062914
  • 博文数量: 470
  • 博客积分: 10206
  • 博客等级: 上将
  • 技术积分: 5620
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-03 12:50
文章分类

全部博文(470)

文章存档

2012年(1)

2011年(18)

2010年(47)

2009年(404)

分类:

2009-04-30 16:41:01

本来要用 grep  '^J' test1
可是写成了:grep  '[^J]' test1
结果输出了整个文本内容,请帮忙解释下为什么会出现这种结果?



您对本贴的看法:
| |
  帅哥 (黑哥)
精灵使



CU编号: 631768
注册:2007-10-22
最后登录: 2009-04-30
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-29 16:43 
回复 #1 baijh 的帖子

正常啊。匹配包含一个非J且非空字符的行。

多谢Tim的指正!

[ 本帖最后由 blackold 于 2009-4-29 17:34 编辑 ]



您对本贴的看法:

__________________________________

LIVE FREE OR DIE!     K.I.S.S.


| |
  帅哥 ((小学生))
光明使者
小学生



CU编号: 468971
注册:2006-9-24
最后登录: 2009-04-30
帖子:
精华:0







状态:...保密...

[] [] [博客]


[]     顶部
发表于 2009-4-29 16:44 
回复 #1 baijh 的帖子

本来要用 grep  '^J' test1
可是写成了:grep  '[^J]' test1

这两个意思不一样



您对本贴的看法:

__________________________________

小学生
| |

圣骑士




CU编号: 1401960
注册:2009-4-16
最后登录: 2009-04-30
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-29 16:48 


QUOTE:
原帖由 blackold 于 2009-4-29 16:43 发表
正常啊。匹配包含非J的行。

我原来认为也是这样的,可是输出的结果是有J的
结果如下:

M.Tansley       05/99    48311   Green    8       40      44
J.Lulu          06/99    48317   green    9       24      26
P.Bunny         02/99    48      Yellow   12      35      28
J.Troll         07/99    4842    Brown-3  12      26      26
L.Tansley       05/99    4712    Brown-2  12      30      28



您对本贴的看法:
| |
  帅哥 (Tim)
法师


CU奥运火炬传递手2008
CU编号: 465018
注册:2006-9-13
最后登录: 2009-04-30
帖子:
精华:0







来自:长春
状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-29 16:50 


QUOTE:
原帖由 blackold 于 2009-4-29 16:43 发表
正常啊。匹配包含非J的行。

这个说法有点歧义啊。

匹配包含非J的行 应该是 grep -v 'J'
grep '[^J]' 是匹配包含一个非J字符的行



您对本贴的看法:

__________________________________

记住该记住的,忘记该忘记的。改变能改变的,接受不能改变的。
| |
  帅哥 (黑哥)
精灵使



CU编号: 631768
注册:2007-10-22
最后登录: 2009-04-30
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-29 16:52 
回复 #4 baijh 的帖子

只要行包含有非J的字符,那么就输出。



您对本贴的看法:

__________________________________

LIVE FREE OR DIE!     K.I.S.S.


| |
  帅哥 (黑哥)
精灵使



CU编号: 631768
注册:2007-10-22
最后登录: 2009-04-30
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-29 16:52 
回复 #5 ly5066113 的帖子

受教


语言是个陷阱,文字表述很难没有歧义。

较严格的表述:
grep '[^J]'   匹配包含一个非J的字符(但该字符不是空字符)的行。
grep -v 'J'    匹配不包含J的行。

[ 本帖最后由 blackold 于 2009-4-29 17:08 编辑 ]



您对本贴的看法:

__________________________________

LIVE FREE OR DIE!     K.I.S.S.


| |

圣骑士




CU编号: 1401960
注册:2009-4-16
最后登录: 2009-04-30
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-29 16:56 
明白了,谢谢大家!



您对本贴的看法:
| |
  帅哥
侠客



CU编号: 1237130
注册:2009-3-28
最后登录: 2009-04-30
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-4-29 19:00 
学习



您对本贴的看法:

__________________________________

天天逛CU, 哪能不进步?  
  
   
  
  
  
   
| |
  帅哥 (Tim)
法师


CU奥运火炬传递手2008
CU编号: 465018
注册:2006-9-13
最后登录: 2009-04-30
帖子:
精华:0







来自:长春
状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-29 19:30 
回复 #7 blackold 的帖子

同意,有些时候真的是只可意会,不可言传。
想要表术的严谨、简洁太难了。



您对本贴的看法:

__________________________________

记住该记住的,忘记该忘记的。改变能改变的,接受不能改变的。
阅读(723) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~