Que signifie \ b dans un modèle grep?


12

Que fait cette commande?

grep "\bi\b" linux.txt

Que cherche-t-il?


Cela peut être évident, mais juste au cas où ce ne serait pas le cas, voici une note sur la différence (significative) entre \<...\>et \b...\b: `Vous pouvez obtenir des résultats inattendus si vous supposez que les deux modèles se comportent de la même manière ... voir ce lien
Peter. O

Réponses:


13

\b dans une expression régulière signifie "limite de mot".

Avec cette commande grep, vous recherchez tous les mots idu fichier linux.txt. ipeut être au début d'une ligne ou à la fin, ou entre deux caractères d'espace dans une phrase.


peut être au début ou à la fin ?? n'est pas censé être seulement entre les espaces ??
amyassin

1
Je ne trouve pas plus de détails à ce sujet. Mais en essayant à la main avec un fichier contenant les lignes "i foo" et "bar i", l'expression rationnelle fournie à la commande grep ci-dessus correspond aux deux.
uloBasEI

1
Plus précisément, non seulement l' espace , mais tout caractère non verbal . Tout comme le -w --word-regexpcommutateur fait: grep -w "i" linux.txt. Par exemple, une ligne comme "<i> italique </i>" correspond également.
manatwork

0

L' \bancre (limite de mot) peut être utilisée à la place \<et \>pour signifier le début ou la fin d'un mot.

S'il s'agit du contenu d'un file:

Hi
this
is test file
to carry out few regular expressions

Alors:

Fichier $ grep -e '\ breg'
pour effectuer quelques reg expressions Ular
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.