ฉันจะค้นหาไฟล์ใน Linux ตามข้อความที่ฉันรู้ได้อย่างไร


4

ฉันจะค้นหาไฟล์ทั้งหมดในไดเรกทอรี / home / ผู้ใช้ / ตัวอย่างที่มี "some text" ใน Linux ได้อย่างไร ฉันใช้ Ubuntu 9.10

คำตอบ:


6

ฉันมักจะใช้การรวมกันของการค้นหาและ grep ดังนั้นจึงคว้าไฟล์ที่ซ่อนไว้ทั้งหมดเช่นกัน:

find / home / user / example -type f -exec grep -i "ข้อความบางส่วน" {} +

การ-iเปลี่ยนเป็น grep จะใช้วิธีการค้นหาแบบตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ มันจะช้าลง แต่จะมีประโยชน์ถ้าคุณไม่ทราบคำศัพท์ที่แน่นอน คุณสามารถถอดสวิตช์ออกได้หากคุณรู้ว่าตัวเรือนที่เหมาะสมคืออะไรเพื่อเร่งความเร็ว


ฉันเชื่อว่าคุณต้องเพิ่ม-Hพารามิเตอร์ใน grep; ไม่เช่นนั้นชื่อของไฟล์จะไม่ปรากฏขึ้นเฉพาะบรรทัดข้อความที่ตรงกันเท่านั้น
eduffy

มันแสดงทั้งฉัน
John T

มันจะต้องเป็น+สัญญาณในตอนท้าย ไม่แน่ใจว่าgrepจะดำเนินการเพียงครั้งเดียวผลลัพธ์ทั้งหมดจะ? ฉันมักจะจบลงexecด้วยการ;ที่จะรัน grep หนึ่งครั้งต่อผลลัพธ์
eduffy

1
คุณถูกต้อง +จะไม่แยกเหมือน\;พระทัย
John T

2
grep -r "some text" /home/user/example

จะหักเงินคืนตามโฟลเดอร์ย่อยทั้งหมดที่ค้นหาสตริง


0

หากคุณไม่กังวลเกี่ยวกับการเรียกไดเรกทอรีย่อยซ้ำ

grep -l "some text" *

จะส่งออกชื่อไฟล์เท่านั้นไม่ใช่บริบทที่การแข่งขันปรากฏขึ้น


ไฟล์ที่ซ่อนอยู่ล่ะ?
John T

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