ฉันพยายามค้นหาไฟล์ที่มีคำเฉพาะที่ใช้grep
อยู่ มีไฟล์จำนวนมากในไดเรกทอรี (> 500)
คำสั่งที่ฉันวิ่ง
$ grep 'delete' *
เอาท์พุต
validate_data_stage1:0
validate_data_stage2:0
validate_data_stage3:0
validate_data_stage4:0
validate_data_stage5:0
validate_input_stage1:0
validate_input_stage2:0
validate_input_stage3:0
validate_input_stage4:0
.... and hundred of such lines
ไฟล์เหล่านี้เป็นไฟล์ที่ไม่มีการจับคู่ที่กำหนด ฉันต้องการระงับบรรทัดเหล่านั้นไม่ให้แสดงจนถึง stdout ฉันรู้ว่า-q
สวิตช์ แต่นั่นจะระงับเอาต์พุตทั้งหมดซึ่งฉันไม่ต้องการ
ฉันจะทำอย่างไร
grep 'delete' * -R
แต่ฉันไม่คิดว่า-R
จะทำให้เกิดปัญหาใด ๆ และใช่มันปกติจะไม่พิมพ์คนที่ไม่ได้จับคู่ แต่ไม่แน่ใจว่าสิ่งที่กรณีที่นี่ ...
grep -- 'delete' *
(เพิ่ม--
) และใช้งานได้ตามที่คาดไว้ การถอด--
จะนำไปสู่การแสดงด้านบน
-ci
และมีแฟ้มที่มีชื่อ ขอบคุณสำหรับการแก้ไขปัญหา คุณสามารถโพสต์ภาพจำลองนี้เป็นคำตอบ
grep
ไม่ควรพิมพ์ชื่อไฟล์ของไฟล์ที่ไม่ตรงกัน ที่จริงแล้วดูเหมือนว่าจะgrep
พิจารณาบรรทัดที่มีเนื้อหา0
ที่จะจับคู่ คุณสามารถโพสต์รูปแบบการค้นหาที่แน่นอนที่คุณใช้อยู่ได้หรือไม่?