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

12

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

grep "\bi\b" linux.txt

Что он ищет?

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

Ответы:

13

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

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

uloBasEI
источник
может быть в начале или в конце ?? не должно быть только между пробелами ??
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 Улар выражения
Priyanshu
источник