ฉันกำลังค้นหาข้อความในไฟล์ แต่มีสามไฟล์จำนวนมากและข้อความค้นหาปรากฏขึ้นหลายครั้งในไฟล์เดียวฉันจะรับรายการไฟล์ที่มีข้อความที่ค้นหาพร้อมกับทุกไฟล์ที่แสดงรายการอยู่เพียงครั้งเดียวได้อย่างไร
ฉันกำลังค้นหาข้อความในไฟล์ แต่มีสามไฟล์จำนวนมากและข้อความค้นหาปรากฏขึ้นหลายครั้งในไฟล์เดียวฉันจะรับรายการไฟล์ที่มีข้อความที่ค้นหาพร้อมกับทุกไฟล์ที่แสดงรายการอยู่เพียงครั้งเดียวได้อย่างไร
คำตอบ:
grep -l xyz file*
โดยที่ xyz เป็นรูปแบบการค้นหาและ file * เป็นรายการไฟล์ที่จะค้นหา
grep -l LIST PATTERN
เป็นวิธีที่จะไป อีกวิธีหนึ่งสามารถใช้xargs
ในการทำสิ่งเดียวกัน:
xargs grep "My Search Pattern" < input.txt
xargs
มีประโยชน์อย่างยิ่งเมื่อคุณต้องการใช้grep
กับหลายชื่อไฟล์ที่ส่งจากไพพ์เช่น:
find ~/Documents ~/bin -print0 | xargs -0 grep 'Search Term'