วิธีใช้ ack เพื่อค้นหาชื่อไฟล์


15

ฉันเริ่มใช้ ack ซึ่งเร็วกว่า grep มาก อย่างไรก็ตามการใช้ ack ฉันต้องการค้นหาชื่อไฟล์มากกว่าเนื้อหาไฟล์ มีวิธีทำเช่นนั้นหรือไม่?

คำตอบ:


16

ใช้เครื่องมือที่เหมาะสมสำหรับงานที่เหมาะสม หากคุณต้องการค้นหาชื่อไฟล์ให้ใช้ 'ค้นหา':

$ # search for all *.txt file in current directory
$ find . -iname "*.txt"

1
จริงแท้แน่นอน. "เมื่อคุณถือค้อนในทุกสิ่งที่คุณจะเริ่มต้นมือให้มีลักษณะเหมือนเล็บ" :)
akira

2
ดี ack (และ grep) นั้นดีกว่าเพราะคุณไม่ต้องมีความชัดเจนเกี่ยวกับ regexes เว้นแต่คุณต้องการ ฉันมักจะทำfind . | ack whatev.ext
Ehtesh Choudhury

วิธีนี้ใช้สำหรับค้นหาไดเรกทอรีเช่นกัน
Pratik Khadloya

1
find และ ack ทำงานแตกต่างกันตั้งแต่ ack กรองผลลัพธ์จำนวนมากตามค่าเริ่มต้น (เนื้อหาของไดเรกทอรีควบคุมเวอร์ชันวัตถุที่คอมไพล์ในแหล่งเก็บข้อมูลต้นฉบับ) ที่จะรวมอยู่ใน find ค้อนที่ดีที่สุดขึ้นอยู่กับผลลัพธ์ที่คุณต้องการ
Joshua Goldberg

1
นี่ไม่ใช่การตอบคำถาม ...
lajarre

23
ack -g REGEX

พิมพ์ไฟล์ที่สัมพันธ์กับชื่อพา ธ + ชื่อไฟล์ตรงกับ REGEX


1
เพิ่ม[^/]*$ใน REGEX ของคุณเพื่อค้นหาในชื่อไฟล์เท่านั้น
simon

7

ฉันเห็นด้วยที่จะใช้การค้นหาถ้าคุณเพิ่งค้นหาไฟล์ * .txt อย่างไรก็ตามแอ๊มีคุณสมบัติการตรวจจับชนิดไฟล์ที่มีประสิทธิภาพดังนั้นคุณสามารถใช้

ack -f --perl

ซึ่งจะค้นหาไฟล์ Perl ทั้งหมดขึ้นอยู่กับทั้งชื่อไฟล์ (* .pm, * .pl, * .t และ * .pod) และบรรทัด shebang


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.