Co oznacza \ b we wzorze grep?


12

Co robi to polecenie?

grep "\bi\b" linux.txt

Czego szuka?


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.