可能这是新手问题,但我必须要问它! 一般来说,我理解正则表达式,但我不明白,为什么这个:
^.{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}
不起作用?
谢谢你。
答案 0 :(得分:8)
您使用grep
-v
选项会导致它打印不匹配的行。删除-v
,它将按预期工作。
grep --help ... -v, --invert-match select non-matching lines ...