วิธีกรองบรรทัดของเอาต์พุตคำสั่งที่เกิดขึ้นในไฟล์ข้อความ?


15

forbidden.txtสมมติว่าเรามีไฟล์ข้อความของสายที่ต้องห้าม วิธีสั้น ๆ ในการกรองทุกบรรทัดของเอาต์พุตคำสั่งที่มีอยู่ในไฟล์ข้อความคืออะไร?

cat input.txt | exclude-forbidden-lines forbidden.txt | sort

4
fgrep -vxf forbidden.txt input.txt | sort
Satō Katsura

คำตอบ:


26

ใช้grepแบบนี้:

$ grep -v -x -F -f forbidden.txt input.txt

รายการยาวของตัวเลือกที่grepหมายถึง

  • -vกลับความรู้สึกของการจับคู่คือมองหาสิ่งที่ไม่ตรงกัน
  • -xเมื่อจับคู่รูปแบบต้องให้รูปแบบตรงกันทั้งบรรทัดนั่นไม่ใช่เฉพาะที่ใดก็ได้ในบรรทัด
  • -Fเมื่อจับคู่รูปแบบให้ถือว่าเป็นสตริงคงที่นั่นไม่ใช่การแสดงออกปกติ
  • -fอ่านรูปแบบจากไฟล์ที่กำหนด ( forbidden.txt)

จากนั้นไปที่ท่อsortหรือสิ่งที่คุณต้องการจะทำกับมัน

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