Программное обеспечение для поиска текста в файлах

24

Я ищу программное обеспечение, которое будет искать текст в файлах из папки, похожей на XYplorer .

Есть ли что-то подобное?

Сантош Линкха
источник
Это должен быть инструмент с графическим интерфейсом?
Октавиан А. Дамиан
1
@Octavian да, но есть, но у меня это не сработает
Сантош Линкха,

Ответы:

19

Есть очень хороший, который поставляется с Ubuntu из коробки.

  1. Откройте тире ( Superключ или кнопку Ubuntu) и начните вводить, пока не найдетеSearch for Files

    введите описание изображения здесь

  2. Выше для Unity, среды рабочего стола по умолчанию в Ubuntu. В средах, управляемых меню, перейдите к Applications-> Accessories->Search for Files

    введите описание изображения здесь

  3. Разверните Select more optionsраздел и введите текст для поиска в Contains the text:поле ввода.

    введите описание изображения здесь

Особенности:

  • 100% графический интерфейс
  • Вы можете искать имена файлов или содержимого
  • Это выглядит в подпапках.

Учитывая ваш сценарий (нет терминальных команд, простой в использовании интерфейс), я думаю, что нет лучшего варианта.

PS: в Contains the text:поле ввода '.' символ является подстановочным знаком. Чтобы избежать этого, вы должны использовать '[]'. Например: введите Contains the text: [.]myFunctionдля поиска .myFunction

MestreLion
источник
да, я не видел, я мог бы добавить детали
Сантош Линкха
1
да, вы можете ... просто нажмите «выбрать дополнительные параметры», и вы можете иметь не только «Содержит текст», но и множество других параметров поиска (дата, пользователь, размер файла, даже выражения регулярных выражений). Я также скучал по этому маленькому зверю в течение долгого времени ... я хотел бы, чтобы он был интегрирован в Nautilus (вроде как F3 в Windows Explorer)
MestreLion
это то же самое, что я советовал ранееgnome-search-tool
Mikl
@Octavian: Спасибо за скриншоты!
MestreLion
@Mikl: результат тот же, разница заключается в подходе к его вызову: ваше первоначальное решение было сосредоточено на вызове из командной строки (или ALT + F2) и лишь кратко упомянуло, что его также можно найти в меню. Не сказал, где или как имя программы было в меню. Только после того, как я опубликую свой ответ, вы отредактировали свой, указав путь к меню и имя. Для новичков подход, ориентированный на меню, всегда лучше, чем вызов CLI. ALT + F2 следует использовать только тогда, когда в меню отсутствует программное обеспечение.
MestreLion
11

использование

 grep -nr <your text> .

поместите текст, который вы хотите найти, внутри <ваш текст>

wizztjh
источник
это выглядит в подпапках
Santosh Linkha
experimentx@workmateX:/var/www/testingzedn$ grep -nr application.iniпринимает навсегда ... я ошибаюсь
Сантош Линкха
нужна точка. , он будет смотреть в папку с -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' '{}' \;

если вы хотите найти все файлы

Mikl
источник
Для всех файлов не используйте, так -name '*.*'как файлы не всегда имеют расширение. Используйте -type fвместо этого (для поиска во всех файлах). Замените {}на "{}", иначе имена файлов с пробелами в нем не будут найдены правильно.
Лекенштейн
@Lekensteyn я редактировал свой пост. но я сделал несколько тестов с файлами с пробелами в именах и без ошибок при использовании {} без кавычек.
Микл
только что проверил и вы правы, пробелы не проблема. В некоторых оболочках кавычки все еще могут быть необходимы для предотвращения расширения оболочки. От man find: «Обе эти конструкции, возможно, должны быть экранированы (с помощью символа« \ ») или заключены в кавычки, чтобы защитить их от расширения оболочкой».
Лекенштейн
9

GUI (графический) инструмент:

gnome-search-tool

вы можете найти его в главном меню Ubuntu

Menu -> Accessories -> Search for Files

или запустить его с помощью горячей клавиши ALT + F2

Mikl
источник
1
Просто обновление для более новых версий Ubuntu: в интерфейсе Unity (Ubuntu 12 или выше) нажмите Dash Home (первый значок на панели инструментов), введите «поиск» и выберите приложение «Поиск файлов».
josircg
9

Я фанат searchmonkey (GPL, бесплатный, кроссплатформенный, довольно легкий по ресурсам и очень быстрый).

введите описание изображения здесь

Будет.
источник
Выглядит хорошо. Попробую на других платформах, так как ответ с наибольшим количеством голосов соответствует моему счету на Ubuntu.
Амол Гавай
Кажется, он не работает на 64-разрядных операционных системах (я столкнулся с проблемой на Win 7 64-разрядных). Для меня это очень важно, так как я везде использую 64-битные ОС. Выглядело многообещающе все же.
Амол Гавай
@AmolGawai отлично работает на 64-битной версии Ubuntu ...
Водолей Сила
4

Regexxer позволит вам искать текст в файлах. Не уверен, что вы подразумеваете под "в папках".

введите описание ссылки здесь

uvasal
источник
3

Графический поиск:

в Kubuntu откройте Dolphin, затем Edit-> Find (Ctrl + F)

измените имя файла на Content и настройте, где искать.

Озис
источник
2

Recoll выполняет индексацию, и вы можете выполнять полнотекстовый поиск документов и электронной почты.

Dustin
источник
Просматривать 50 000 папок - трудная задача: D, если вы не индексируете данные, поэтому, если вы не можете купить SSD-диск, установите любой инструмент индексирования, прежде чем тратить время на поиск файлов. Сделай работу один раз. Даже если это не ответ на текущий вопрос, это хорошая точка зрения.
m3nda
1

Я сравнил три предложения здесь с 64-битным 16.04 Kubuntu:

  1. В настоящее время Searchmonkey работает с 64-битной Ubuntu. Это похоже на 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. Антислово необязательно. Это необходимо для поддержки старых файлов .doc.
  6. При необходимости включите следующие символические ссылки и корневой каталог в предпочтениях Recoll.
  7. Создайте задание cron для индексации Recoll с помощью графического интерфейса или запустите его при каждом входе в систему.
  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. Измените корневой каталог с ~ на / при необходимости в команде поиска.
  2. Мой скрипт поиска содержит ошибку: он создает слишком длинную структуру каталогов. Но мне было легче изменить временный файл вручную, чем найти решение этой проблемы. Основной целью было то, что это будет работать для нескольких файлов PST, и это делает это.
  3. Подробнее о Readpst читайте в http://www.five-ten-sg.com/libpst/rn01re01.html и https://blog.robseder.com/2015/08/29/working-with-a-pst-file -в-Linux /
Тимо Рийконен
источник
0

Я действительно хочу представить один инструмент, основанный на библиотеке ncurses, для предоставления текстового пользовательского интерфейса. Инструмент под названием NCGREP (grep на основе ncurses) в основном предназначен для поиска текста в определенной папке. Надеюсь, это то, что вы хотите. Этот источник инструмента был размещен на github.com, подробнее на https://github.com/ncgrep/ncgrep.

введите описание изображения здесь
Нажмите на изображение, чтобы увидеть демо-анимацию

GenialX
источник