- 论坛徽章:
- 0
|
本帖最后由 id_for_fun 于 2012-08-20 12:31 编辑
回复 9# yonka
确切的讲, 当^ 处于一个表示集合的符号(就是一对中括号[])的里边的最前面的(像这样[^...])时候,表示取反。
其他场合,作为‘开头的位置’ 匹配
3楼 ,6楼 :
不是取反, 匹配为:开头是空白字符
9楼:
为了匹配空白字符, 你要用[[:space:]]
[:space:]这样的写法, 只有在一个集合环境里才有意义。
也就是说, 你 grep ^[:space:] ,表示的并不是开头是空白字符,他表示开头是 :, s, p, a, c, e 这几个中的一个。
所以虽然定义的[:space:] 表示空白字符, 但是通常你看到的时候都是 [[:space:]]
[^[:space:]] 这个表示不是空白的字符。其他楼的兄弟回答过了。
你man grep看一看就明白。这东西看文档最方便了, 看一遍什么都明白了。
(就算我解释的都是正确的, 你总是会觉得不完全可信,自己看文档最可信)
man grep 然后搜一下 :space 找到这部分, 读的时候看仔细点,看清楚它的确切含义,否则容易理解错误,就比如11 楼。哼哼!!
编辑:修改错字
|
|