ด้วยgrep
ฉันต้องการเลือกทุกบรรทัดที่ตรงกับรูปแบบและไม่ตรงกับรูปแบบอื่น ฉันต้องการที่จะใช้การร้องขอเพียงครั้งเดียวgrep
เพื่อให้ฉันสามารถใช้--after-context
ตัวเลือก (หรือ--before-context
, หรือ--context
)
-v
ไม่สามารถใช้งานได้ที่นี่เนื่องจากมันขัดแย้งกับรูปแบบทั้งหมดที่ฉันส่งผ่านไปยังการgrep
ใช้-e
ตัวเลือก
ตัวอย่าง
ฉันต้องการค้นหาการจับคู่บรรทัดneedle
ละเว้นการจับคู่บรรทัดignore me
ด้วยบริบทต่อไปนี้หนึ่งบรรทัด
นี่คือไฟล์อินพุตของฉัน:
one needle ignore me
two
three
four needle
five
ผลลัพธ์ที่ฉันต้องการคือ:
four needle
five
อย่างที่คุณเห็นโซลูชั่นไร้เดียงสานี้ไม่ทำงาน:
$ cat file | grep --after-context=1 needle | grep -v 'ignore me'
two
---
four needle
five
ack