ซอฟต์แวร์สำหรับค้นหาข้อความในไฟล์


24

ฉันกำลังมองหาซอฟต์แวร์ที่จะค้นหาข้อความในไฟล์จากโฟลเดอร์ที่คล้ายกับXYplorer

มีอะไรที่คล้ายกันไหม?


มันต้องเป็นเครื่องมือ GUI หรือไม่?
Octavian A. Damiean

1
@ Octavian ใช่มันมี แต่ยังไม่มีมันจะทำงานให้ฉัน
Santosh Linkha

คำตอบ:


19

มีหนึ่งที่ดีมากที่มาพร้อมกับอูบุนตูออกมาจากกล่อง

  1. เปิด Dash ( Superปุ่มหรือปุ่ม Ubuntu) และเริ่มพิมพ์จนกว่าคุณจะพบSearch for Files

    ป้อนคำอธิบายรูปภาพที่นี่

  2. ด้านบนมีไว้สำหรับ Unity ซึ่งเป็นสภาพแวดล้อมเดสก์ทอปเริ่มต้นใน Ubuntu ในสภาพแวดล้อมที่ใช้เมนูไปที่Applications-> Accessories->Search for Files

    ป้อนคำอธิบายรูปภาพที่นี่

  3. ขยายSelect more optionsส่วนและป้อนข้อความเพื่อค้นหาในช่องContains the text:ใส่

    ป้อนคำอธิบายรูปภาพที่นี่

คุณสมบัติ:

  • GUI 100%
  • คุณสามารถค้นหาชื่อไฟล์หรือเนื้อหา
  • มันจะดูในโฟลเดอร์ย่อย

รับสถานการณ์ของคุณ (ไม่มีคำสั่งเทอร์มินัลอินเตอร์เฟสที่ใช้งานง่าย) ฉันคิดว่าไม่มีตัวเลือกที่ดี

PS: ในช่องContains the text:ใส่ '.' ตัวละครเป็นสัญลักษณ์แทน ในการหลบหนีคุณต้องใช้ '[]' เช่นพิมพ์Contains the text: [.]myFunctionเพื่อค้นหา. myFunction


ใช่ฉันไม่เห็นว่าฉันสามารถเพิ่มรายละเอียดได้
Santosh Linkha

1
ใช่คุณสามารถ ... เพียงคลิกที่ "เลือกตัวเลือกเพิ่มเติม" และคุณสามารถมีได้เพียง "มีข้อความ" แต่ยังมีตัวเลือกการค้นหาอื่น ๆ อีกมากมาย (วันที่ผู้ใช้ผู้คัดขนาดไฟล์แม้แต่นิพจน์ regex) ฉันยังคิดถึงสัตว์ตัวน้อยนี้เป็นเวลานาน ... ฉันหวังว่ามันจะถูกรวมเข้ากับ Nautilus (อย่างเช่น F3 ใน Windows Explorer)
MestreLion

นี่เป็นเช่นเดียวกับที่ฉันแนะนำไว้ก่อนหน้านี้gnome-search-tool
Mikl

@ Octavian: ขอบคุณที่ให้ภาพหน้าจอ!
MestreLion

@ Mikl: มันเป็นผลลัพธ์เดียวกันความแตกต่างอยู่ในแนวทางการเรียกใช้: วิธีแก้ปัญหาเริ่มต้นของคุณมุ่งเน้นไปที่การเรียกใช้บรรทัดคำสั่ง (หรือ ALT + F2) และกล่าวถึงเพียงสั้น ๆ เท่านั้นที่สามารถพบได้ในเมนู ไม่ได้บอกตำแหน่งหรือชื่อโปรแกรมในเมนู หลังจากที่ฉันโพสต์คำตอบของฉันคุณแก้ไขของคุณเพื่อให้เส้นทางเมนูและชื่อ สำหรับผู้มาใหม่แนวทางแบบเมนูจะดีกว่าการเรียกใช้ CLI เสมอ ควรใช้ ALT + F2 เมื่อซอฟต์แวร์ไม่สามารถใช้ได้ในเมนู
MestreLion

11

ใช้

 grep -nr <your text> .

ใส่ข้อความที่คุณต้องการค้นหาใน <ข้อความของคุณ>


ดูในโฟลเดอร์ย่อยหรือไม่
Santosh Linkha

experimentx@workmateX:/var/www/testingzedn$ grep -nr application.iniกำลังตลอดไป ... ฉันไม่ถูกต้อง
Santosh Linkha

ต้องการจุด มันจะดูในโฟลเดอร์ด้วย -r
wizztjh

grep -nr application.ini
wizztjh

9

คุณสามารถใช้ได้

find . -name '*.*' -exec grep -Hn 'text to find' '{}' \;

-name '*. *' หรือ '* .txt' (ใช้รูปแบบไฟล์ที่นี่)
'text to find' (วางข้อความที่คุณต้องการค้นหาที่นี่)

find . -type f -exec grep -Hn 'text to find' '{}' \;

หากคุณต้องการค้นหาไฟล์ทั้งหมด


สำหรับไฟล์ทั้งหมดอย่าใช้-name '*.*'เนื่องจากไฟล์ไม่มีส่วนขยายเสมอไป ใช้-type fแทน (สำหรับการค้นหาในไฟล์ทั้งหมด) แทนที่{}ด้วย"{}"มิฉะนั้นชื่อไฟล์ที่มีช่องว่างในนั้นจะค้นหาไม่ถูกต้อง
Lekensteyn

@Lekensteyn ฉันได้แก้ไขโพสต์ของฉัน แต่ฉันได้ทำการทดสอบกับไฟล์ที่มีช่องว่างในชื่อและไม่มีข้อผิดพลาดขณะใช้ {} witout เครื่องหมายคำพูด
Mikl

เพิ่งทดสอบด้วยและคุณก็ถูกต้องช่องว่างไม่ใช่ปัญหา ในบางเชลล์ราคาอาจจำเป็นต้องมีเพื่อป้องกันการขยายตัวของเชลล์ จากman find: "โครงสร้างทั้งสองนี้อาจจำเป็นต้องหลบหนี (ด้วย` \ ') หรืออ้างเพื่อปกป้องพวกเขาจากการขยายตัวโดยเชลล์ "
Lekensteyn

9

เครื่องมือ GUI (แบบกราฟิก):

gnome-search-tool

คุณสามารถค้นหาได้ในเมนูหลักของ Ubuntu

Menu -> Accessories -> Search for Files

หรือเรียกใช้โดยใช้ปุ่มลัด ALT + F2


1
เพียงอัปเดตสำหรับ Ubuntu รุ่นใหม่กว่า: บนอินเทอร์เฟซ Unity (Ubuntu 12 หรือดีกว่า) คลิกที่ Dash Home (ไอคอนแรกบนแถบเครื่องมือ) พิมพ์ "ค้นหา" และเลือกแอปพลิเคชัน "ค้นหาไฟล์"
josircg

9

ฉันเป็นแฟนของsearchmonkey (GPL, ฟรี, ข้ามแพลตฟอร์ม, เบาบางกับทรัพยากรและรวดเร็วมาก)

ป้อนคำอธิบายรูปภาพที่นี่


ดูดี. จะลองใช้กับแพลตฟอร์มอื่น ๆ เนื่องจากคำตอบที่ได้รับการโหวตสูงสุดเหมาะสมกับบิลของฉันใน Ubuntu
Amol Gawai

ดูเหมือนว่ามันไม่ทำงานบนระบบปฏิบัติการ 64 บิต (ฉันประสบปัญหาในการชนะ 7 64 บิต) นี่คือดีลเลอร์สำหรับฉันเพราะฉันใช้ระบบปฏิบัติการ 64 บิตทุกที่ ดูมีแนวโน้มว่า
Amol Gawai

@AmolGawai ทำงานได้อย่างสมบูรณ์ที่อูบุนตู 64bit นี่ ...
ราศีกุมภ์พลังงาน

4

Regexxerจะให้คุณค้นหาข้อความในไฟล์ ไม่แน่ใจว่าคุณหมายถึงอะไร "ในโฟลเดอร์"

ป้อนคำอธิบายลิงก์ที่นี่


3

ค้นหากราฟิก:

ใน Kubuntu เปิด Dolphin แล้วแก้ไข -> ค้นหา (Ctrl + F)

เปลี่ยนจากชื่อไฟล์เป็นเนื้อหาและปรับจากตำแหน่งที่จะค้นหา


2

Recoll ทำการจัดทำดัชนีและคุณสามารถค้นหาข้อความและเอกสารแบบเต็มได้


การค้นหาโฟลเดอร์ 50.000 เป็นปัญหา: D หากคุณไม่ทำดัชนีข้อมูลดังนั้นหากคุณไม่สามารถซื้อดิสก์ SSD ให้ติดตั้งเครื่องมือทำดัชนีก่อนที่คุณจะเสียเวลาในการค้นหาไฟล์ ทำงานครั้งเดียว แม้ว่าไม่ใช่คำตอบสำหรับคำถามปัจจุบันเป็นมุมมองที่ดี
m3nda

1

ฉันเปรียบเทียบข้อเสนอแนะสามข้อในที่นี่กับ 64 บิต 16.04 Kubuntu:

  1. Searchmonkey ทำงานได้กับ Ubuntu 64 บิตทุกวันนี้ มันคล้ายกับ regexxer มันปรากฏอย่างรวดเร็ว แต่โดยธรรมชาติแล้วจะช้ากว่าการค้นหาตามดัชนีมาก
  2. ค้นหาไฟล์และ Alt-F2 ไม่สามารถใช้กับ KDE Ubuntu ได้
  3. คำแนะนำของฉันคือ Recoll และฉันได้เพิ่มคำแนะนำในการติดตั้งลงไปแล้ว สำหรับฉันการติดตั้งเริ่มต้นรองรับ PDF (ทดสอบสิ่งนี้!), DOCX, TAR, ZIP เป็นต้น

    sudo add-apt-repository "deb http://archive.canonical.com/ $(lsb_release -sc) partner"
    sudo apt-get install recoll antiword
    recoll
    
  4. อาจไม่จำเป็นต้องใช้บรรทัดแรก: เพิ่มที่เก็บการติดตั้งคู่ค้า

  5. Antiword เป็นตัวเลือก จำเป็นต้องมีการรองรับไฟล์. doc รุ่นเก่า
  6. เปิดใช้งานลิงก์สัญลักษณ์ต่อไปนี้และไดเรกทอรีรูทจากการเรียกใช้รีคอลซ้ำหากจำเป็น
  7. สร้างงาน cron สำหรับการทำดัชนี Recoll โดยใช้ GUI หรือเริ่มทำงานในทุกการเข้าสู่ระบบ
  8. เปลี่ยนการตั้งค่า Recoll ในการตั้งค่าจากภาษาอังกฤษเป็นภาษาทั้งหมดหากเหมาะสมกับคุณ
  9. เริ่มทำดัชนีอย่างน้อยก็สำหรับฉันมันเร็วอย่างน่าประหลาดใจและไม่ได้ใช้ทรัพยากรทั้งหมดดังนั้นฉันจึงสามารถใช้แล็ปท็อปต่อไปได้
  10. ฉันพบข้อผิดพลาดหนึ่งรายการจาก Recoll แล้ว: หากคุณค้นหาชื่อไฟล์ด้วย "PST" จะไม่พบแม้ว่าจะเป็นตัวพิมพ์ใหญ่ก็ตาม "pst" ใช้งานได้และพบทั้งชื่อตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก
  11. ดูเพิ่มเติมเกี่ยวกับการเรียกคืนได้จากhttps://www.lesbonscomptes.com/recoll/features.html

หากคุณต้องการเพิ่มการสนับสนุนสำหรับไฟล์ Outlook PST คุณจะต้องดำเนินการดังต่อไปนี้

    sudo apt-get install readpst
    mkdir ~/PST
    find -L ~ -name "*.pst" -print | awk "{ printf \"%s%s %s%s%s %s\\n\", \"mkdir ~/PST/\", \$1, \"; readpst -o ~/PST/\", \$1, \" -D -j 4 -r -tea -u -w\", \$1 }" > /tmp/myPstFiles
    cat /tmp/myPstFiles
    chmod 755 /tmp/myPstFiles
    /tmp/myPstFiles
  1. เปลี่ยนไดเรกทอรีรูทจาก ~ เป็น / หากจำเป็นในคำสั่ง find
  2. สคริปต์การค้นหาของฉันมีข้อบกพร่อง: สร้างโครงสร้างไดเรกทอรีที่ยาวเกินไปในขณะนี้ แต่มันง่ายกว่าที่ฉันจะแก้ไขไฟล์ temp ด้วยตนเองกว่าจะหาวิธีแก้ไขนี้ เป้าหมายหลักคือจะใช้งานกับไฟล์ PST หลายไฟล์และทำเช่นนั้น
  3. ดูเพิ่มเติมเกี่ยวกับ Readpst จาก http://www.five-ten-sg.com/libpst/rn01re01.htmlและhttps://blog.robseder.com/2015/08/29/working-with-a-pst-file -in-ลินุกซ์ /

0

ฉันอยากจะแนะนำเครื่องมือหนึ่งซึ่งใช้ไลบรารี ncurses เพื่อจัดเตรียมส่วนต่อประสานข้อความกับผู้ใช้ เครื่องมือที่เรียกว่า NCGREP (grep ยึดตาม ncurses) เป็นหลักสำหรับการค้นหาข้อความในโฟลเดอร์เฉพาะ หวังว่านี่คือสิ่งที่คุณต้องการ แหล่งที่มาของเครื่องมือนี้โฮสต์บน github.com ดูเพิ่มเติมได้ที่https://github.com/ncgrep/ncgrep

ป้อนคำอธิบายรูปภาพที่นี่
คลิกที่ภาพเพื่อดูภาพเคลื่อนไหวการสาธิต

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