2010-08-11 4 views
3

Возможно, это вопрос новичков, но я должен спросить об этом!
В общем я понимаю, регулярные выражения, но я не понимаю, почему это одна:Вопрос о регулярном выражении

^.{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" 

So ^. {8} соответствует «prelink:», когда [[: blank:]] {2} необходимо совместить «   » (два пробела), но у нас есть только «» (одно пространство) ... Так почему эта работа вообще, и если эта работа, почему это одна:

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

не работает?

Благодарим за опережение.

ответ

8

Вы используете grep с опцией -v, которая заставляет его печатать строки, которые не соответствуют. Удалите -v, и он будет работать так, как вы ожидаете.

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

Спасибо, я был уверен, что -v является: «с помощью регулярных выражений» – rodnower

+0

@rodnower: Нет, это «Grep» часть, которая означает, что. : D –

Смежные вопросы