Поиск по содержимому файлов doc, docx, xls, xlsx и pdf в GUI Linux

Опубликовано: 03 Март 2026
на канале: el guahiro
948
10

Поиск по содержимому файлов doc, docx, xls, xlsx и pdf в GUI Linux
Search the contents of doc, docx, xls, xlsx, and pdf files in the Linux GUI
Есть в Linux такая утилитка, под названием Silver-searcher.
Ищет она быстрее, чем grep, синтаксис проще. Например, найти что-то в директории с тестовыми файлами, заходим терминалом в директорию, где собираемся искать и набираем:
ag "слово с пробелами"
или
ag словобезпробелов
Поизк рекурсивный по поддиректориям, ищет быстро, выхлоп лаконичный, искомое слово в строке подсвечено, название файла выделено цветом.
CLI опции утилиты ag можно посмотреть здесь
Ставится она так, в терминале:
sudo add-apt-repository ppa:pgolm/the-silver-searcher
sudo apt-get update
sudo apt-get install the-silver-searcher
Или можно скомпилировать, скачав с Github
Но у меня, как и большинства обычных юзеров, на компьютере тысячи файлов офисных форматов doc, docx, xls, xlsx и pdf. В них Silver-searcher не ищет.
Не беда. Пишем скрипт с незатейливым названием "ищи", такого содержания:
#!/bin/bash
echo -e "\n
Поиск слова во всех файлах этой папки, введите запрос \n
Результаты поиска по введенному далее запросу \n"
read response

find . -name "*.doc" |
while read i; do catdoc "$i" |
ag "$response" && echo "$i"; done

find . -name "*.docx" |
while read i; do docx2txt "$i" |
ag "$response" && echo "$i"; done

find . -name "*.xls" |
while read i; do xls2csv "$i" |
ag "$response" && echo "$i"; done

find . -name "*.xlsx" |
while read i; do xlsx2csv "$i" |
ag "$response" && echo "$i"; done

find . -name "*.pdf" |
while read i; do pdftotext "$i" - | less |
ag "$response" && echo "$i"; done

Скрипт сохраняем, даём права на исполнение и бросаем куда-нибуть в $PATH, т.е. в директорию, где хранятся исполняемые е файлы, например в ~/.local/bin/
Потом создаём ПКМ Thunar под названием "ИЩИ: поиск в офисных файлах по содержанию" на команду:
xfce4-terminal -H -e "bash -c ищи"
Условие появления:
каталоги, иконка любая.
Теперь, при нажатии ПКМ ИЩИ на каталог откроектся терминал, надо будет вбить слово и через секунду высыпятся результаты поиска - фал и одна строчка, в которой содержится искомый текст. Если мы хотим, чтобы было две строчки сверхуи снизу, то после ag в скрипте надо дописать -C, если больше, то: -C цифра строк.
Если хотим поискать в файлах Libreoffice, дописываем скрипт, используя утилиту unoconv (скажу по секрету, у el guahiro скрипт ищет даже по файлам AutoCAD, но вам это не надо).

БОЛЕЕ ТОЧНЫЕ И ОБНОВЛЁННЫЕ ВЕРСИИ СКРИПТОВ смотреть на xubuntu ru net в теме от el guahiro
.