正则表达式问题

时间:2010-08-11 18:26:06

标签: regex linux grep

可能这是新手问题,但我必须要问它! 一般来说,我理解正则表达式,但我不明白,为什么这个:

^.{8}[[:blank:]]{2}

在这一行上工作:

prelink: /lib/libkeyutils-1.2.so: at least one of file's dependencies has changed since prelinking

在这个grep命令中:

echo "prelink: /lib/libkeyutils-1.2.so: at least one of file's dependencies has changed since prelinking" | grep -v '^.\{8\}[[:blank:]]\{2\}'

其中:

The                says "beggining of line"  
The .{8}           says "any eight characters"  
The [[:blank:]]{2} says "any two space characters"  

所以^。{8}匹配“prelink:”,当[[:blank:]] {2}需要匹配“”(两个空格),但我们只有“”(一个空格)...... 那么为什么这个工作呢,如果这个工作为什么会这样呢:

^.{8}[[:blank:]]{1} 

不起作用?

谢谢你。

1 个答案:

答案 0 :(得分:8)

您使用grep -v选项会导致它打印匹配的行。删除-v,它将按预期工作。

grep --help
...
   -v, --invert-match        select non-matching lines
...