Co oznacza \ b we wzorze grep?

12

Co robi to polecenie?

grep "\bi\b" linux.txt

Czego szuka?

el ab
źródło
Może to być oczywiste, ale na wypadek, gdyby tak nie było, oto uwaga na temat (znaczącej) różnicy między \<...\>i \b...\b: „Możesz uzyskać nieoczekiwane wyniki, jeśli założymy, że oba wzorce zachowują się tak samo ... zobacz ten link
Peter. O

Odpowiedzi:

13

\b w wyrażeniu regularnym oznacza „granicę słowa”.

Za pomocą tego polecenia grep wyszukujesz wszystkie słowa iw pliku linux.txt. imoże znajdować się na początku wiersza lub na końcu albo między dwoma spacjami w zdaniu.

uloBasEI
źródło
może być na początku czy na końcu? nie powinno być tylko między spacjami?
amyassin
1
Nie znajduję więcej szczegółów na ten temat. Ale próbując ręcznie z plikiem zawierającym linie „i foo” i „bar i”, wyrażenie regularne podane dla powyższej komendy grep jest zgodne z obydwoma.
uloBasEI
1
Dokładniej, nie tylko spacja , ale każdy znak niebędący słowem . Podobnie jak -w --word-regexpprzełącznik robi: grep -w "i" linux.txt. Na przykład pasuje również wiersz taki jak „<i> kursywa </i>”.
manatwork
0

\b(Granica słowo) Kotwa może być stosowana w miejscu \<i \>oznaczać początek lub koniec słowa.

Jeśli jest to treść file:

Hi
this
is test file
to carry out few regular expressions

Następnie:

Plik $ grep -e '\ breg'
przeprowadzenie kilku reg wyrażeń uzgodnieniami dotyczącymi
Priyanshu
źródło