\ b หมายถึงอะไรในรูปแบบ grep?


12

คำสั่งนี้ทำอะไร

grep "\bi\b" linux.txt

มันกำลังค้นหาอะไร


มันอาจจะชัดเจน แต่ในกรณีที่ไม่ใช่นี่คือหมายเหตุเกี่ยวกับความแตกต่าง (สำคัญ) ระหว่าง\<...\>และ\b...\b: `คุณสามารถได้ผลลัพธ์ที่ไม่คาดคิดถ้าคุณสมมติว่าทั้งสองรูปแบบมีพฤติกรรมเหมือนกัน ... ดูลิงค์นี้
ปีเตอร์ O

คำตอบ:


13

\b ในการแสดงออกปกติหมายถึง "ขอบเขตของคำ"

ด้วยคำสั่ง grep นี้คุณกำลังค้นหาคำทั้งหมดในแฟ้มi สามารถอยู่ที่จุดเริ่มต้นของบรรทัดหรือตอนท้ายหรือระหว่างอักขระเว้นวรรคสองตัวในหนึ่งประโยคlinux.txti


สามารถอยู่ในจุดเริ่มต้นหรือในที่สุด? ไม่ควรอยู่ระหว่างช่องว่างเท่านั้น?
amyassin

1
ฉันไม่พบรายละเอียดเพิ่มเติมเกี่ยวกับสิ่งนั้น แต่ลองใช้ไฟล์ที่มีบรรทัด "i foo" และ "bar i" ด้วยมือ regexp ที่จัดให้กับคำสั่ง grep ด้านบนจะจับคู่ทั้งคู่
uloBasEI

1
แม่นยำมากขึ้นไม่เพียง แต่พื้นที่แต่ใด ๆอักขระที่ไม่ใช่คำ เช่นเดียวกับ-w --word-regexpสวิตช์ที่ใช้: grep -w "i" linux.txt. ตัวอย่างเช่นบรรทัดเช่น "<i> ตัวเอียง </i>" ตรงกัน
จัดการ

0

\b(คำเขตแดน) สมอสามารถนำมาใช้ในสถานที่ของ\<และ\>มีความหมายจุดเริ่มต้นหรือจุดสิ้นสุดของคำ

หากนี่คือเนื้อหาของfile:

Hi
this
is test file
to carry out few regular expressions

แล้ว:

$ grep -e '\ breg' ไฟล์
เพื่อแสดงนิพจน์ ular reg
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.