ฉันพยายามค้นหาไฟล์ที่มีคำเฉพาะที่ใช้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ที่จะจับคู่ คุณสามารถโพสต์รูปแบบการค้นหาที่แน่นอนที่คุณใช้อยู่ได้หรือไม่?