Що означає "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>", також відповідає.
манатство

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.