วิธีใช้ grep
เพื่อแสดงบรรทัดรอบ ๆ การจับคู่แต่ละครั้ง
เมื่อพูดถึงการค้นหาในไฟล์ในระบบปฏิบัติการที่ใช้ Linux หรือ Unix แบบคล้ายคลึงกัน grep
เป็นเครื่องมือบรรทัดคำสั่งที่มีค่าอย่างยิ่ง อย่างไรก็ตาม บางครั้งคุณต้องการมากกว่าบรรทัดที่ตรงกันเท่านั้น คุณต้องการดูบริบทที่ล้อมรอบการจับคู่นั้น บล็อกโพสต์นี้จะชี้แนะแก่คุณเกี่ยวกับวิธีการ แสดงบรรทัดก่อนหน้าและหลัง รอบ ๆ บรรทัดที่ตรงกันแต่ละบรรทัดโดยใช้ grep
ปัญหา
คุณมีไฟล์และต้องการค้นหาคำหรือรูปแบบเฉพาะ การค้นหาการจับคู่เหล่านั้นเพียงอย่างเดียวไม่เพียงพอ – คุณยังต้องการดูบรรทัดที่ปรากฏก่อนและหลังบรรทัดที่ตรงกัน ตัวอย่างเช่น หากคุณกำลังตรวจสอบไฟล์บันทึกสำหรับข้อความข้อผิดพลาดเฉพาะ บริบทที่ล้อมรอบข้อผิดพลาดเหล่านั้นอาจมีความสำคัญไม่แพ้กัน
วิธีแก้ไข
การใช้ตัวเลือก -B
และ -A
ใน grep
คุณสามารถใช้ตัวเลือก -B
และ -A
เพื่อควบคุมจำนวนบรรทัดที่คุณต้องการแสดงก่อนและหลังแต่ละการจับคู่:
-B num
: ตัวเลือกนี้กำหนดจำนวนบรรทัดที่จะแสดง ก่อน บรรทัดที่ตรงกัน-A num
: ตัวเลือกนี้กำหนดจำนวนบรรทัดที่จะแสดง หลัง บรรทัดที่ตรงกัน
คำสั่งตัวอย่าง
เพื่อแสดงให้เห็น สมมติว่าคุณต้องการค้นหาการเกิดขึ้นของคำว่า foo
ในไฟล์ชื่อ README.txt
และคุณต้องการดู 3 บรรทัดก่อนหน้าและ 2 บรรทัดหลังจากแต่ละการจับคู่ นี่คือวิธีที่คุณจะจัดโครงสร้างคำสั่งของคุณ:
grep -B 3 -A 2 foo README.txt
- สิ่งที่คำสั่งนี้ทำ:
- ค้นหาคำสำคัญ
foo
ในไฟล์README.txt
- แสดง 3 บรรทัดที่นำไปสู่การเกิดขึ้นของ
foo
- แสดง 2 บรรทัดที่ตามหลังการเกิดขึ้นนั้น
- ค้นหาคำสำคัญ
การใช้ตัวเลือก -C
หากคุณต้องการแสดงจำนวนบรรทัดเดียวกันก่อนและหลังแต่ละการจับคู่ grep
มีตัวเลือกที่สะดวกสำหรับเรื่องนั้นด้วย:
-C num
: ตัวเลือกนี้ช่วยให้คุณระบุได้ว่าจะแสดงจำนวนบรรทัดเท่าใด ทั้งก่อนและหลัง บรรทัดที่ตรงกัน
คำสั่งตัวอย่าง
ในการแสดง 3 บรรทัดทั้งก่อนและหลังของแต่ละการจับคู่กับ foo
ให้ใช้คำสั่งต่อไปนี้:
grep -C 3 foo README.txt
- สิ่งที่คำสั่งนี้ทำ:
- ค้นหาคำว่า
foo
ในไฟล์README.txt
- แสดง 3 บรรทัด ก่อนและหลัง การเกิดขึ้นของ
foo
- ค้นหาคำว่า
บทสรุป
การใช้ตัวเลือก -B
, -A
, และ -C
อย่างมีประสิทธิภาพช่วยให้คุณดึงบริบทที่มีความหมายจากการค้นหาของคุณ ไม่ว่าคุณจะกำลังแก้ไขปัญหาในไฟล์บันทึกหรือเพียงแค่วิเคราะห์ไฟล์ข้อความ การสามารถดูบรรทัดที่ล้อมรอบการจับคู่ของคุณจะให้ข้อมูลเชิงลึกที่มีค่า
ตอนนี้ที่คุณรู้วิธีค้นหาการจับคู่พร้อมกับบรรทัดรอบ ๆ โดยใช้ grep
ลองทำดูในการค้นหาไฟล์ครั้งถัดไปของคุณ!