¿Qué significa \ b en un patrón grep?

12

¿Qué hace este comando?

grep "\bi\b" linux.txt

¿Qué está buscando?

el ab
fuente
Puede ser obvio, pero en caso de que no lo sea, aquí hay una nota sobre la diferencia (significativa) entre \<...\>y \b...\b: `Puede obtener resultados inesperados si supone que los dos patrones se comportan de la misma manera ... vea este enlace
Peter. O

Respuestas:

13

\b en una expresión regular significa "límite de palabra".

Con este comando grep, está buscando todas las palabras ien el archivo linux.txt. ipuede estar al principio de una línea o al final, o entre dos caracteres de espacio en una oración.

uloBasEI
fuente
puede ser al principio o al final? ¿No se supone que sea solo entre espacios?
amyassin
1
No encuentro más detalles al respecto. Pero al intentar a mano con un archivo que contiene las líneas "i foo" y "bar i", la expresión regular proporcionada al comando grep anterior coincide con ambos.
uloBasEI
1
Más precisamente, no solo espacio , sino cualquier carácter no verbal . Al igual que el -w --word-regexpinterruptor hace: grep -w "i" linux.txt. Por ejemplo, una línea como "<i> cursiva </i>" también coincide.
manatwork
0

El \bancla (límite de palabras) se puede usar en lugar de \<y \>para indicar el principio o el final de una palabra.

Si este es el contenido de un file:

Hi
this
is test file
to carry out few regular expressions

Luego:

$ grep -e '\ breg' archivo
para llevar a cabo algunas reg expresiones Ular
Priyanshu
fuente