Что означает \ b в шаблоне grep?


12

Что делает эта команда?

grep "\bi\b" linux.txt

Что он ищет?


Это может быть очевидно, но на всякий случай это не так, вот примечание о (значительном) различии между \<...\>и \b...\b: `Вы можете получить неожиданные результаты, если предположите, что два шаблона ведут себя одинаково ... см. Эту ссылку
Питер. O

Ответы:


13

\b в регулярном выражении означает «границу слова».

С помощью этой команды grep вы ищете все слова iв файле linux.txt. iможет быть в начале строки или в конце, или между двумя пробелами в предложении.


может быть в начале или в конце ?? не должно быть только между пробелами ??
amyassin

1
Я не нахожу больше подробностей об этом. Но, пытаясь вручную с файлом, содержащим строки «i foo» и «bar i», регулярное выражение, предоставленное выше для команды grep, соответствует им обоим.
uloBasEI

1
Точнее, не только пробел , но и любой несловный символ . Так же , как -w --word-regexpпереключатель делает: grep -w "i" linux.txt. Например, строка типа «<i> курсив </ i>» также совпадает.
manatwork

0

\b(Граница слова) якорь может быть использован вместо \<и \>для обозначения начала и конца слова.

Если это содержание file:

Hi
this
is test file
to carry out few regular expressions

Потом:

файл $ grep -e '\ breg'
проводить несколько REG Улар выражения
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.