ฉันกำลังค้นหาข้อความในไฟล์ แต่มีสามไฟล์จำนวนมากและข้อความค้นหาปรากฏขึ้นหลายครั้งในไฟล์เดียวฉันจะรับรายการไฟล์ที่มีข้อความที่ค้นหาพร้อมกับทุกไฟล์ที่แสดงรายการอยู่เพียงครั้งเดียวได้อย่างไร
ฉันกำลังค้นหาข้อความในไฟล์ แต่มีสามไฟล์จำนวนมากและข้อความค้นหาปรากฏขึ้นหลายครั้งในไฟล์เดียวฉันจะรับรายการไฟล์ที่มีข้อความที่ค้นหาพร้อมกับทุกไฟล์ที่แสดงรายการอยู่เพียงครั้งเดียวได้อย่างไร
คำตอบ:
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'