Форум проекта Matuntu

Поддержка => Руководства и инструкции => Тема начата: vita от 16 Августа 2015, 20:23:57

Название: Поиск файлов по тексту в Linux
Отправлено: vita от 16 Августа 2015, 20:23:57
Во всемирной сети уйма советов на эту тему.
Статьи в помощь - Linux поиск файлов. Поиск текста в файлах Linux (http://www.adodo.ru/blog/linux/81.html)
Как найти в Linux файлы, содержащие текст (http://itman.in/linux-grep-find-text/).
Или Поиск текста в документах или grep в помощь (http://softhelp.org.ua/?p=4943).

Использование Midnight Commander для поиска текста в файлах (http://pingvinus.ru/note/search-text-in-linux-mc) - покажет имена файлов с искомым текстом.

Название: Re: Поиск файлов по тексту в Linux
Отправлено: ivm от 16 Августа 2015, 20:25:44
Приложения->стандартные->искать файлы. Дальше открываем дополнительные параметры. Если неизвестно конкретное место, ищем по всей файловой системе файлы, содержащие текст, имя файлов не нужно указывать.
Название: Re: Поиск файлов по тексту в Linux
Отправлено: vita от 16 Августа 2015, 20:30:11
При вводе команды search for text in directory получаем вывод, что Программа 'search' на данный момент не установлена. Вы можете установить её, выполнив: sudo apt-get install sphinxsearchвыполняем предложенную команду и устанавливаем Sphinx 2.0.4-id64-release (r3135)
Copyright (c) 2001-2012, Andrew Aksyonoff
Copyright (c) 2008-2012, Sphinx Technologies Inc (http://sphinxsearch.com)
Для использования новой версии Сфинкса можно добавить репозиторий ppa:builds/sphinxsearch-rel22 (https://launchpad.net/~builds/+archive/ubuntu/sphinxsearch-rel22/), последняя версия программы 2.2.9.
О применении - Sphinx – настоящее быстрого поиска (http://larin.in/archives/47) и Статьи и полезные материалы про Sphinx (http://vk.com/topic-20032698_27008116).
Необходимости в применении пока нет, но возможны варианты  ;)
Название: Re: Поиск файлов по тексту в Linux
Отправлено: ivm от 16 Августа 2015, 20:31:49
Утилита catfish - программа поиска, выполняющая все виды поиска с полным наборов нужных параметров.
Поиск может быть продолжительным. Время зависит от оборудования и уровня поиска.
Меня этот вид поиска устраивает по всем параметрам.
Название: Варианты поиска текста внутри документов.
Отправлено: Кулиш Евгений от 27 Марта 2018, 14:19:32
В связи с переходом на Линукс требуется простое решение для поиска документов в папке по тексту ВНУТРИ документа. (форматы doc, docx, odt)
Варианты с командами в терминале не подходят. (Пользоваться будут очень мало умеющие люди)
Ранее был ВинХР, там слева в файл-менеджере панель, ввёл искомый текст, поставил птичку где искать: в тексте или в названии, нажал на кнопку поиск - получил результат.
Хотелось бы максимальное подобие.
Название: Re: Поиск файлов по тексту в Linux
Отправлено: vita от 27 Марта 2018, 16:37:12
Евгений, Вами уже задавался этот вопрос здесь (http://forum.matuntu.org/index.php?topic=611.msg8209#msg8209), но ответ так и  не нашли...
В основном репозитории Ubuntu есть утилита - Recoll, предназначенная для полнотекстового поиска в файлах и основанная на очень мощном движке (Xapian). Поставляется с простым в использовании графическим интерфейсом к последнему. sudo apt install recoll(http://i.imgur.com/LzFyk2n.png)
После установки Recoll появляется в стандартных приложениях.
Более подробно о его применении написано в этой статье (https://www.kv.by/content/320192-indeksatsiya-i-poisk-v-ubuntu-posredstvom-recoll).
Установка проверена в Matuntu-B64-M120.
Название: Re: Поиск файлов по тексту в Linux
Отправлено: Кулиш Евгений от 27 Марта 2018, 17:50:56
grep отпадает - сложно.
Средство поиска Мате - не находит...
Название: Re: Поиск файлов по тексту в Linux
Отправлено: ivm от 27 Марта 2018, 18:51:04
Если в системе установлен Recoll и изначально проиндексированы файлы, по истечении некоторого времени перед началом поиска в терминале нужно запустить демон непрерывного фонового индексирования, который умно и быстро отслеживает все изменения в проиндексированных папках, следующей командой recollindex -m
Название: Re: Поиск файлов по тексту в Linux
Отправлено: ivm от 27 Марта 2018, 19:21:04
По окончании индексации решил попробовать. Нашёл в одном из файлов имеющиеся слова "дополнительные пакеты" и ввёл для проверки работы поисковой машины эти слова. Практически немедленно было найдено файлов, в тексте которых встречаются эти слова. Верхние результаты поиска полностью соответствовали заданному параметру, ниже размещались результаты с искомыми словами, но врозь.

По скорости работы и результатам программа поиска впечатлила!
Название: Re: Поиск файлов по тексту в Linux
Отправлено: vita от 28 Марта 2018, 00:21:35
Для просмотра файлов формата MS Word средствами Recool в синаптике предлагается установить пакет antiword.
Название: Re: Поиск файлов по тексту в Linux
Отправлено: Кулиш Евгений от 28 Марта 2018, 14:42:40
О применении - Sphinx – настоящее быстрого поиска (http://larin.in/archives/47) и Статьи и полезные материалы про Sphinx (http://vk.com/topic-20032698_27008116).
Необходимости в применении пока нет, но возможны варианты  ;)
СпасиБо, попробовал, но для рядового пользователя - слишком сложно...
Название: Re: Поиск файлов по тексту в Linux
Отправлено: vita от 28 Марта 2018, 14:45:03
Попробуйте Recoll (http://forum.matuntu.org/index.php?topic=59.msg8919#msg8919), который с русскоязычным интерфейсом и легко настраиваемый.
Название: Re: Поиск файлов по тексту в Linux
Отправлено: Кулиш Евгений от 28 Марта 2018, 14:51:35
В основном репозитории Ubuntu есть утилита - Recoll, предназначенная для полнотекстового поиска в файлах и основанная на очень мощном движке (Xapian). Поставляется с простым в использовании графическим интерфейсом к последнему.
Установка проверена в Matuntu-B64-M120.
СпасиБо, проверяя её получил следующее:
Требуемые внешние программы для ваших типов файлов не найдены: см. файл /home/papa/.recoll/missing:
Perl::Image::ExifTool (image/png)
antiword (application/msword)
python:chm (application/x-chm)
python:libxml2/python:libxslt1 (application/vnd.sun.xml.writer image/svg+xml)
python:pylzma (application/x-7z-compressed)
Название: Re: Поиск файлов по тексту в Linux
Отправлено: vita от 28 Марта 2018, 15:14:24
Это сообщение выводится при первом запуске программы, но поиск при этом работает.
Чтобы программа полноценно работала, можно отметить для установки все предлагаемые пакеты:
(http://i.imgur.com/yjieqHy.png)
Название: Re: Поиск файлов по тексту в Linux
Отправлено: Кулиш Евгений от 28 Марта 2018, 18:54:51
Попробуйте Recoll (http://forum.matuntu.org/index.php?topic=59.msg8919#msg8919), который с русскоязычным интерфейсом и легко настраиваемый.
Как в нём искать по конкретной папке?
Пример: в папке документы есть папки 1, 2, 3, 4, 5, 6, 7, ...
Они все регулярно пополняются, но поиск нужен сегодня по одной из них, а завтра по другой...
Название: Re: Поиск файлов по тексту в Linux
Отправлено: ivm от 28 Марта 2018, 19:25:35
Я вижу возможность поиска по конкретной папке: для этого нужно проиндексировать каждую папку и создав индексные базы с соответствующими именами. Правда, это через одно место получается. С другой стороны, я проверил работу поисковой машины, работает очень шустро. Если только речь не идёт о террабайтных томах.
Название: Re: Поиск файлов по тексту в Linux
Отправлено: Кулиш Евгений от 28 Марта 2018, 19:28:16
Нашёл инструкцию по инсталляции поиска DocFetcher
https://forums.linuxmint.com/viewtopic.php?t=234643 (https://forums.linuxmint.com/viewtopic.php?t=234643)
Только не осилил...
Как её в Матунту установить?
Скачать её можно тут: https://sourceforge.net/projects/docfetcher/files/docfetcher/ (https://sourceforge.net/projects/docfetcher/files/docfetcher/)
Название: Re: Поиск файлов по тексту в Linux
Отправлено: Кулиш Евгений от 28 Марта 2018, 19:33:38
Если только речь не идёт о террабайтных томах.
Так в том то и дело, что в 40 папках лежат только доки: "30 239 items, totalling 745,2 МБ (803,2 МБ on disk)" только в 3-х форматах: odt, doc docx...
Название: Re: Поиск файлов по тексту в Linux
Отправлено: ivm от 28 Марта 2018, 21:52:52
Нашёл инструкцию по инсталляции поиска DocFetcher
https://forums.linuxmint.com/viewtopic.php?t=234643 (https://forums.linuxmint.com/viewtopic.php?t=234643)
Только не осилил...
Как её в Матунту установить?
Скачать её можно тут: https://sourceforge.net/projects/docfetcher/files/docfetcher/ (https://sourceforge.net/projects/docfetcher/files/docfetcher/)
Как я понял, Вы любите плавать с 16-кг гирей на шее. В данном решении нужен будет Java, (но не мотоцикл!), который надо ещё установить. С моей точки зрения, это загадить систему.
Название: Re: Поиск файлов по тексту в Linux
Отправлено: Кулиш Евгений от 28 Марта 2018, 22:47:17
... В данном решении нужен будет Java, (но не мотоцикл!), который надо ещё установить. С моей точки зрения, это загадить систему.
Яву просил и ОпенОффис при попытке поставить языковое дополнение,
Яву просил и банковский плагин для Файрфокса...
Лишние приложения я не люблю, но, видимо, придётся ставить, ведь простого решения для простого поиска пока нет...
Название: Re: Поиск файлов по тексту в Linux
Отправлено: Кулиш Евгений от 29 Марта 2018, 00:14:23
Вот ещё вариант, но как он работает - не пойму...
https://geoff.greer.fm/ag/ (https://geoff.greer.fm/ag/)
https://github.com/ggreer/the_silver_searcher (https://github.com/ggreer/the_silver_searcher)
Название: Re: Поиск файлов по тексту в Linux
Отправлено: alv от 29 Марта 2018, 06:07:40
простого решения для простого поиска пока нет...
Простого решения для простого поиска по простым офисным документам нет и не пока, а вообще. И не будет. Потому что простого поиска по doc-файлам не может быть никогда вследствие закрытости формата - это всё равно, что искать фрагмент Си-кода в откомпилированном бинарнике.
Для odt или docx, которые есть просто компрессированный XML, теоретически можно сочинить скрипт с использованием zgrep, например. Только очень сомневаюсь , то это будет простое решение...
Название: Re: Поиск файлов по тексту в Linux
Отправлено: Кулиш Евгений от 29 Марта 2018, 12:46:42
Под простым решением я понимаю кнопочку, встроенную в файл-менеджер, после нажатия которой открывается поле ввода текста и выбор опций: по названию или по содержимому. Всё. Какая команда при этом начнёт исполняться: grep, find или ack - не важно.
Название: Re: Поиск файлов по тексту в Linux
Отправлено: alv от 29 Марта 2018, 13:30:44
Под простым решением я понимаю кнопочку, встроенную в файл-менеджер, после нажатия которой открывается поле ввода текста и выбор опций: по названию или по содержимому.
Чтобы кнопочка, встроенная в файл-менеджер, позволяла искать по содержимому офисных документов, такую кнопочку кто-то должен сделать. То есть сочинить соответствующий плагин.
Задача эта, как уже говорилось выше, вполне нетривиальная. Насколько я понимаю, её никто не решал. Подозреваю, потому, что те, кто мог бы такой плагин сочинить, в данной функции не нуждаются :)
Название: Re: Поиск файлов по тексту в Linux
Отправлено: Кулиш Евгений от 29 Марта 2018, 21:41:29
Нашёл решение, которое внешне - отлично, но только, по неизвестной мне причине, не работает...
catfish
(в синаптике есть)
Название: Re: Поиск файлов по тексту в Linux
Отправлено: ivm от 29 Марта 2018, 23:29:04
Евгений, catfish работает, но Вы хотите искать файл по содержащемуся тексту. Он ищет только то, что может найти. И найти может текст только в простых текстовых файлах. Рекомендованный Вам инструмент Recoll прекрасно справляется с нужными Вам задачами, но Вы почему-то его проигнорировали.
Предлагаю тему считать закрытой.
Название: Re: Поиск файлов по тексту в Linux
Отправлено: alv от 29 Марта 2018, 23:34:39
Нашёл решение, которое внешне - отлично, но только, по неизвестной мне причине, не работает...
catfish
catfish прекрасно работает. Только там, для чего он предназначен. А для поиска в офисных документах он не предназначен - всё по той же причине: никто не написал соответствующего бэк-энда.
Название: Re: Поиск файлов по тексту в Linux
Отправлено: vita от 30 Марта 2018, 11:54:22
Для просмотра файлов формата MS Word средствами Recool в синаптике предлагается установить пакет antiword.
Действительно, без установки пакета antiword в дополнение к Recoll поиск  в офисных документах не будет работать. Задаётся поиск в меню Конфигурация индексирования добавлением любого конкретного каталога, даже на флешке. Перед началом поиска нужно выполнить обновление индекса или переиндексацию.
Проверила в Matuntu-B64-M120 поиск на флешке в заданном каталоге документов, созданных в LO и OO, Найденные по критерию поиска документы нашлись и нормально открываются в OpenOffice прямо со страницы Recoll.
Название: Re: Поиск файлов по тексту в Linux
Отправлено: alv от 30 Марта 2018, 13:27:04
без установки пакета antiword в дополнение к Recoll поиск  в офисных документах не будет работать.
Была ещё такая программа catdoc, аналог antiword'а. Точнее, наоборот, Витя Вагнер её раньше сочинил. Правда, и забросил раньше.
Но в выводе
apt show recollони обе фигурируют в качестве suggests.
Про catdoc от автора (http://www.wagner.pp.ru/~vitus/software/catdoc/).
Название: Re: Поиск файлов по тексту в Linux
Отправлено: ivm от 30 Марта 2018, 14:15:52
При внимательном рассмотрении RECOLL (в переводе "воспоминания") всё больше и больше нравится. После добавления всех рекомендованных для него пакетов ищет всё.
Вышла одна "незадача". По умолчанию файлы pdf при нахождении в них результата должны открываться в Evince, а в Mate используется Atril. Оказалось, что при правом клике на пункте Предпросмотр в выпавшем меню есть пункт Open With, позволяющий выбрать Atril и GIMP. Аналогично можно выбрать открытие офисных документов в установленном на компьютере офисе. У меня, например, установлены  китайский WPSO и AOO.
Название: Re: Поиск файлов по тексту в Linux
Отправлено: Кулиш Евгений от 30 Марта 2018, 17:05:28
Да, из всех вариантов, пока Recoll - лидер. Пока будем им пользоваться.
В catfish есть опция "искать по содержимому", но не ищет ведь... а внешняя оболочка - лучше, чем у Реколл.
Название: Re: Поиск файлов по тексту в Linux
Отправлено: Кулиш Евгений от 30 Марта 2018, 17:16:56
...прекрасно справляется...
Предлагаю тему считать закрытой.
Так позапрошлогодние Матунту также прекрасно справлялись с задачами... но мы же не останавливаемся на достигнутом... :)
Думаю, что линза, встроенная в Caja, ищущая по имени, по содержимому и т.д. - будет актуальна. :)
Название: Re: Поиск файлов по тексту в Linux
Отправлено: vita от 07 Марта 2022, 00:17:47
Есть ещё ориентированная на производительность поисковая утилита FSearch. Имеет открытый исходный код и предназначена для GNU / Linux и Unix-подобных операционных систем. Вдохновлена поисковой системой Everything, поэтому мгновенно находит файлы и папки по имени. Написана на C и основана на GTK + 3, имеет потрясающую скорость отклика. Функция, которая используется при работе с большими объёмами файлов, очень ценится.

FSearch создавался как функционально расширенная и более быстрая замена существующим решениям (таким как MATE Search Tool, GNOME Search Tool и другим) и функции поиска встроенной в многие файловые менеджеры (Krusader, Caja, Nautilus, SpaceFM, File Search и прочие). Приложение ориентировано на использование опытными пользователями.

Имеет графический пользовательский интерфейс. Современный и настраиваемый (GUI). Он включает в себя панель инструментов и адаптивное тематическое окно приложения. Он может предлагать нам файлы из любого места, когда мы вводим буквы в поле поиска.

Результаты нашего поиска отображаются в виде списка. Мы сможем отсортировать эти результаты по имени файла, пути, размеру или дате изменения. Как только интересующий нас файл найден, мы можем решить открыть файл с помощью какого-нибудь приложения или файлового менеджера. Мы также сможем скопировать путь к файлу (или каталогу) в наш буфер обмена.

Если хотите перейти на следующий уровень поиска, вы можете сделать это с помощью регулярных выражений, благодаря поддержке библиотеки FSearch PCRE (регулярное выражение, совместимое с Perl).

FSearch при первом запуске проводит индексацию файлов и каталогов. Поиск осуществляется в режиме реального времени. Поисковые запросы обрабатываются и отображаются сразу по мере ввода букв и символов. Результаты поиска выводятся в сортируемый по нескольким параметрам список. Найденный файл или каталог можно открыть (в приложении "по умолчанию" или в файловом менеджере), можно скопировать путь к файлу/каталогу в буфер обмена.

На сайте проекта (https://github.com/cboxdoerfer/fsearch) для загрузки предлагаются пакеты Snap и Flatpak. Но установить можно DEB пакетами из стабильного репозитория ppa:christian-boxdoerfer/fsearch-stable (https://launchpad.net/~christian-boxdoerfer/+archive/ubuntu/fsearch-stable): sudo add-apt-repository ppa:christian-boxdoerfer/fsearch-stable -yили нестабильного репозитория ppa:christian-boxdoerfer/fsearch-daily (https://launchpad.net/~christian-boxdoerfer/+archive/ubuntu/fsearch-daily):
sudo add-apt-repository ppa:christian-boxdoerfer/fsearch-daily -y sudo apt install fsearch
Интерфейс утилиты по умолчанию устанавливается на языке системы. Работа приложения проверена в Matuntu-F.