Cosa significa \ b in un modello grep?


12

Cosa fa questo comando?

grep "\bi\b" linux.txt

Cosa sta cercando?


Può essere ovvio, ma nel caso in cui non lo sia, ecco una nota sulla differenza (significativa) tra \<...\>e \b...\b: `Puoi ottenere risultati inaspettati se pensi che i due schemi si comportino allo stesso modo ... vedi questo link
Peter. O

Risposte:


13

\b in un'espressione regolare significa "confine di parola".

Con questo comando grep, stai cercando tutte le parole inel file linux.txt. ipuò essere all'inizio di una riga o alla fine o tra due caratteri spaziali in una frase.


può essere all'inizio o alla fine ?? non dovrebbe essere solo tra spazi ??
Amyassin,

1
Non trovo più dettagli a riguardo. Ma provando a mano con un file contenente le righe "i foo" e "bar i", il regexp fornito al comando grep sopra sta facendo corrispondere entrambi.
uloBasEI,

1
Più precisamente, non solo spazio , ma qualsiasi carattere non verbale . Proprio come l' -w --word-regexpinterruttore fa: grep -w "i" linux.txt. Ad esempio una linea come "<i> corsivo </i>" corrisponde anche.
arte

0

L' \bancoraggio (limite di parola) può essere utilizzato al posto di \<e \>per indicare l'inizio o la fine di una parola.

Se questo è il contenuto di un file:

Hi
this
is test file
to carry out few regular expressions

Poi:

$ grep -e '\ breg' file
di effettuare alcune reg espressioni Ular
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.