วิธีการใช้หาง -f พร้อม grep เพื่อแสดงเส้นโดยรอบ


16

ผมอยากจะเห็นผลลัพธ์ในส่วนlogfile greped โดยโดเมนเดียวเท่านั้น แต่ยังดังต่อไปนี้ทั้งสองสาย

ตัวอย่าง:

tail -f /var/log/apache2/modsec_audit.log |grep mydomain.de

สิ่งนี้แสดงทุกบรรทัดที่มี"mydomain.de"แต่ข้อมูลสำคัญอยู่ในบรรทัดด้านล่างบรรทัดซึ่งมีโดเมนรวมอยู่ด้วย

คำตอบ:


25

grep มีตัวเลือกพิเศษเพื่อกำหนดจำนวนบรรทัดก่อนและหลังผลลัพธ์:

  • -A (หลังจาก)
  • -B (ก่อน)
  • -C (บริบท [ก่อน + หลัง])

ดังนั้นในกรณีของคุณคุณต้องการ-A:

YOUR_COMMAND |grep -A NUMBER YOURDOMAIN

คำสั่งดังกล่าวจะพิมพ์NUMBERบรรทัดหลังจากYOURDOMAINในไฟล์


โปรดทราบว่านี่เป็นส่วนขยายของ GNU หากคุณใช้ Linux คุณgrepมีตัวเลือกนี้อย่างแน่นอน ถ้าคุณไม่ได้คุณควรตรวจสอบ
Leonid

9

ลองส่งจำนวนบรรทัดบริบทไปที่ grep

| grep -C 5

จะพิมพ์ 5 บรรทัดก่อนและหลังการแข่งขัน

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