O que \ b significa em um padrão grep?


12

O que esse comando faz?

grep "\bi\b" linux.txt

O que ele está procurando?


Pode ser óbvio, mas, caso não seja, aqui está uma nota sobre a (significativa) diferença entre \<...\>e \b...\b: `Você pode obter resultados inesperados se assumir que os dois padrões se comportam da mesma maneira ... veja este link
Peter. O

Respostas:


13

\b em uma expressão regular significa "limite de palavras".

Com este comando grep, você está procurando por todas as palavras ino arquivo linux.txt. ipode estar no início de uma linha ou no final ou entre dois caracteres de espaço em uma frase.


pode ser no começo ou no final? não deveria ser apenas entre espaços ??
Amyassin

1
Não encontro mais detalhes sobre isso. Mas, tentando manualmente com um arquivo contendo as linhas "i foo" e "bar i", o regexp fornecido para o comando grep acima está correspondendo a ambos.
uloBasEI

1
Mais precisamente, não apenas espaço , mas qualquer caractere que não seja da palavra . Assim como o -w --word-regexpswitch faz:grep -w "i" linux.txt . Por exemplo, uma linha como "<i> itálico </i>" também corresponde.
manatwork

0

A \bâncora (limite da palavra) pode ser usada no lugar \<e \>para significar o início ou o fim de uma palavra.

Se este for o conteúdo de um file:

Hi
this
is test file
to carry out few regular expressions

Então:

Arquivo $ grep -e '\ breg'
para realizar alguns reg expressões Ular
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.