ฉันกำลังมองหาสตริงfoo=
ในไฟล์ข้อความในแผนผังไดเรกทอรี มันเป็นเครื่อง Linux ทั่วไปฉันมี bash shell:
grep -ircl "foo=" *
ในไดเรกทอรีนี้ยังมีไฟล์ไบนารีจำนวนมากที่ตรงกับ "foo =" เนื่องจากผลลัพธ์เหล่านี้ไม่เกี่ยวข้องและทำให้การค้นหาช้าลงฉันต้องการ grep ข้ามการค้นหาไฟล์เหล่านี้ (ส่วนใหญ่เป็นรูป JPEG และ PNG) ฉันจะทำอย่างไร
ฉันรู้ว่ามี--exclude=PATTERN
และ--include=PATTERN
ตัวเลือก แต่รูปแบบรูปแบบคืออะไร หน้า man ของ grep พูดว่า:
--include=PATTERN Recurse in directories only searching file matching PATTERN.
--exclude=PATTERN Recurse in directories skip file matching PATTERN.
ค้นหาgrep include , grep include include , grep แยกและตัวแปรไม่พบสิ่งที่เกี่ยวข้อง
หากมีวิธีที่ดีกว่าในการ grepping เฉพาะในไฟล์บางไฟล์ฉันก็พอแล้ว การย้ายไฟล์ที่ละเมิดนั้นไม่ใช่ตัวเลือก ฉันไม่สามารถค้นหาเฉพาะบางไดเรกทอรี (โครงสร้างไดเรกทอรีเป็นระเบียบใหญ่กับทุกสิ่ง) นอกจากนี้ฉันไม่สามารถติดตั้งอะไรได้ดังนั้นฉันต้องทำด้วยเครื่องมือทั่วไป (เช่นgrepหรือการค้นหาที่แนะนำ)
--exclude-dir=.svn
ดังนั้น grep ไม่ได้ไปเข้าพวกเขาทั้งหมด
grep -r --exclude-dir=var "pattern" .