Apa maksud \ b dalam pola grep?


12

Apa yang dilakukan perintah ini?

grep "\bi\b" linux.txt

Apa yang dicari?


Ini mungkin jelas, tetapi kalau-kalau tidak, di sini ada catatan tentang perbedaan (signifikan) antara \<...\>dan \b...\b: `Anda bisa mendapatkan hasil yang tidak terduga jika Anda menganggap kedua pola tersebut berperilaku sama ... lihat tautan ini
Peter. O

Jawaban:


13

\b dalam ekspresi reguler berarti "batas kata".

Dengan perintah grep ini, Anda mencari semua kata idalam file linux.txt. ibisa di awal baris atau di akhir, atau di antara dua karakter spasi dalam kalimat.


bisa di awal atau di akhir ?? tidak seharusnya hanya antar spasi ??
amyassin

1
Saya tidak menemukan detail lebih lanjut tentang itu. Tetapi mencoba dengan tangan dengan file yang berisi baris "i foo" dan "bar i", regexp yang disediakan untuk perintah grep di atas cocok dengan keduanya.
uloBasEI

1
Lebih tepatnya, tidak hanya ruang , tetapi karakter non-kata . Sama seperti -w --word-regexpsaklar tidak: grep -w "i" linux.txt. Misalnya baris seperti "<i> italic </i>" juga cocok.
manatwork

0

The \b(batas kata) anchor dapat digunakan di tempat \<dan \>untuk menandakan awal atau akhir dari sebuah kata.

Jika ini isi dari file:

Hi
this
is test file
to carry out few regular expressions

Kemudian:

File $ grep -e '\ breg'
untuk melakukan beberapa ekspresi reguler
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.