Проблема с регулярным выражением - PullRequest
3 голосов
/ 11 августа 2010

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

^.{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 Ответ

8 голосов
/ 11 августа 2010

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

grep --help
...
   -v, --invert-match        select non-matching lines
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...