การค้นหาแบบกว้างแรกด้วย ack หรือ grep


11

เมื่อฉันค้นหาเช่นไดเรกทอรีบ้านของฉันด้วยack(หรือgrep) ปกติแล้วฉันต้องการทราบว่าฉันได้ตั้งค่าตัวเลือกใด

เนื่องจากไฟล์ปรับแต่งส่วนใหญ่ใกล้เคียงกับ~มันมากมันจะเร็วขึ้นackถ้าฉันสามารถค้นหาความกว้างก่อน เป็นไปได้ไหม


1
น่าเศร้าที่คำตอบดูเหมือนจะไม่
Nifle

4
ดูเหมือนว่าทุกสองสามเดือนฉัน google นี้และกลับไปที่หน้านี้
เกรกอรี่ Nisbet

2
@ GregoryNisbet My“ solution” ได้เปลี่ยนมาใช้agซึ่งเร็วกว่าประมาณ 5-10 เท่าackและไม่มีข้อเสีย เมื่อรวมกับการเปลี่ยนเป็น SSD ฉันไม่ได้มีปัญหาตั้งแต่
Profpatsch

คำตอบ:


3

ฉันไม่รู้ackแต่มีเครื่องมือเช่นgrepฉันมักใช้:

( find . -maxdepth 1 -print ; find . -mindepth 2 -print ) | xargs -n 50 -exec grep TXT

ส่วนที่อยู่ระหว่าง(และ)ตรวจสอบให้แน่ใจว่าไฟล์แรกที่ระดับ 1 ถูกแสดงรายการและหลังจากนั้นไฟล์ที่ 2 และลึกกว่า (คุณสามารถเปลี่ยนแปลงได้) xargsฟีดชื่อไฟล์ต่อ grep50

แน่นอนมันขึ้นอยู่กับว่ามีตัวแปรรุ่นfindใดบ้างบนแพลตฟอร์มของคุณ หากใช้งานบางสิ่งจาก 30 ปีที่ผ่านมาคุณจะต้องใช้บางอย่างเช่นการเรียงลำดับจำนวนเครื่องหมายทับซ้าย


MMV ( grep: ./.macromedia/Flash_Player/#SharedObjects/Q2GSRK6Y/www.mixcloud.com/media: Is a directory
Archlinux

หากคุณไม่ได้ไปใช้เพื่อหาสิ่งที่ต้องทำอย่างน้อย-print0 mywiki.wooledge.org/BashFAQ/020find . -maxdepth 1 -exec grep {} +;
การชดเชยที่ จำกัด
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.