За потребителите на Linux необходимостта да търсят думи в един или няколко файла възниква доста често.
Има много различни приложения, които могат да свършат добра работа за вас. Кое приложение ще бъде най-подходящо за вас зависи от вашите нужди и предпочитания. Приложенията се различават основно по следните характеристики:
- Инструменти за команден ред срещу инструменти с графичен интерфейс.
- Дали могат да търсят само в текстови файлове или във всички често използвани типове документи.
- Дали използват индексиране или не.
В тази статия ще ви запознаем с различни типове приложения за търсене, за да можете да изберете най-подходящото за вас.
Забележка: Ако сте потребител на Mac, можете да разгледате нашата статия Как да търсите на Mac.
1. Търсене в текстови файлове с инструмента grep
За инструмента grep
Най-популярният инструмент за търсене на текст в Linux от командния ред е grep. Той е създаден преди повече от 45 години! Негов разработчик е американският компютърен учен Кен Томпсън.
Grep може да търси във всякакви текстови файлове (.txt, .html, .xml и др.), но не може да търси в други типове документи като OpenOffice файлове, PDF файлове и други.
Всъщност командата grep е в топ 15 на най-използваните команди в Linux според Hostinger.

Помощната програма се поддържа от операционните системи UNIX, Linux и Mac.
Съществува и Windows алтернатива на grep, наречена findstr, за която можете да прочетете повече в нашата статия Как да търсите файлове в Windows 10.
Как да използвате инструмента grep
Инструментът grep е вграден в операционната система, така че не е необходимо да го инсталирате.
Най-простият синтаксис за намиране на низ в един файл с помощта на командата grep е:
grep 'searched-word' filename
По подразбиране търсенето с grep е чувствително към малки и главни букви.
Нека постепенно да добавим най-полезните опции към нашето търсене.
1. Направете търсенето нечувствително към малки и главни букви с опцията "-i":
grep 'searched-word' filename
2. Търсете рекурсивно във всички файлове в дадена директория с опцията "-r":
grep 'searched-word' '/directory'
3. Търсете само цели думи с опцията "-w":
grep 'searched-word' '/directory'
4. Отпечатайте номерата на редовете, в които е намерена търсената дума, с опцията "-n":
grep 'searched-word' '/directory'
5. Синтаксис за търсене на няколко думи:
grep 'word1|word2|word3' '/directory'
Много други полезни опции на grep можете да намерите в официалния Наръчник на Grep.
Предимства и недостатъци на инструмента grep
Както всеки софтуерен инструмент, наред с удобството, което ви дава, grep има и някои недостатъци. Нека обобщим неговите плюсове и минуси.
Плюсове:
- Голяма гъвкавост чрез широк набор от опции.
- Работи ефективно с регулярни изрази.
- Вграден е в операционната система.
Минуси:
- Не може да търси в никакви други типове документи освен текстови файлове.
- Няма графичен интерфейс.
- Трудно четене на дълги редове текст в резултатите.
- Не е толкова мощен за търсене в изходен код в сравнение с ack.
2. SearchMonkey
SearchMonkey е безплатно приложение с отворен код и графичен интерфейс за Linux OS, което използва възможностите на инструмента grep. SearchMonkey е наличен и за потребители на Windows и Mac.
Освен търсене в текстови файлове, SearchMonkey поддържа:
- OpenOffice и LibreOffice файлове (.odt).
- Microsoft Office файлове (.docx).
- PDF файлове (.pdf).
Инструментът може да търси рекурсивно в директория и връща имената на файловете и маркираното съдържание, което търсите.
Следвайте следните стъпки, за да инсталирате и използвате инструмента:
1. Инсталирайте приложението със следната команда в Terminal:
sudo apt install searchmonkey
2. Стартирайте приложението.
3. Изберете папката, в която ще се търси.

4. Отметнете полето "Containing", въведете думите за търсене и натиснете "Enter."

5. Щракнете върху файл от списъка в левия панел, за да видите намерените текстови фрагменти.

Ако искате да търсите в конкретна директория, щракнете върху раздела “Advanced” и изберете желаната папка.
В панела "Advanced" можете да използвате допълнителни критерии за филтриране на резултатите, например по размер на файла, дата на последна промяна и други.

С SearchMonkey можете също да използвате регулярни изрази по същия начин, както в инструмента grep.
Плюсове:
- Напълно безплатен и с отворен код.
- Лек и лесен за използване.
- Не използва индексиране.
- Много опции за прецизиране на търсенето.
- Работи с регулярни изрази.
Минуси:
- Бавна работа, не е подходящ за големи директории.
- Не поддържа RTF, Excel (.xlsx, .xls), PowerPoint (.pptx, .ppt), стар Word (.doc) и други популярни типове документи.
- Не може да търси комбинация от думи, които се срещат в едно изречение.
- Не показва всички редове от резултатите на едно място, трябва да проверявате всеки файл един по един.
3. Recoll
Recoll е инструмент за търсене на работния плот, наличен за Linux, Windows и MacOS. Версията за Linux е безплатна. Той може да търси не само в текстови файлове, но и в повечето често срещани формати документи, включително:
- OpenOffice и LibreOffice файлове (.odt).
- Microsoft Office файлове (.docx, .xlsx, .xls, .ppt).
- PDF файлове (.pdf).
- AbiWord файлове (.abw).
По подразбиране Recoll индексира файловете във вашата "home" директория, което може да отнеме известно време.
Ето стъпките за инсталиране и използване на програмата:
1. Инсталирайте Recoll с командата:
sudo apt-get install recoll
2. Стартирайте приложението.
3. В прозореца "First indexing setup" щракнете върху "Start indexing now."

4. В съобщението "Missing helper programs" щракнете върху "OK."

5. Въведете термините за търсене и натиснете "Enter."
6. От списъка с резултати щракнете върху "snippets", за да видите всички текстови фрагменти, съдържащи търсените думи.

7. В прозореца "Snippets" ще видите страниците и редовете, в които са намерени вашите търсени думи.

Ако трябва да търсите в папка извън вашата "home" директория, отидете на "File" -> "Special indexing" и щракнете върху бутона "Browse", за да изберете желаната директория.
Плюсове
- Безплатен за потребителите на Linux.
- Поддържа повечето често използвани типове документи.
- Лесен за използване графичен интерфейс.
- Поддържа разширени опции за търсене.
- Позволява преглед на документа без отваряне на файла.
Минуси
- Въпреки че приложението използва индексиране, търсенията са сравнително бавни.
- Не поддържа Word 97-2003 формат ".doc" или файловия формат PowerPoint ".pptx".
- Не може да търси комбинация от думи.
- Трябва да щраквате върху "snippets" на всеки резултат, за да видите намерените фрагменти.
4. DocFetcher
DocFetcher е безплатен инструмент за търсене на работния плот с отворен код, наличен за Linux, Windows и MacOS. Освен текстови файлови формати, той поддържа почти всички формати документи, които може да използвате:
- Microsoft Office 97-2003 файлове (.doc, .xls, .ppt).
- Microsoft Office 2007-365 файлове (.docx, .xlsx, .pptx, .docm, .xlsm, .pptm).
- Имейл файлове на Microsoft Outlook (.pst).
- OpenOffice файлове (.odt, .ods, .odg, .odp, .ott, .ots, .otg, .otp).
- PDF файлове (.pdf).
- Rich Text Format (.rtf).
- AbiWord файлове (.abw, .zabw).
- И други.
Ето кратки указания за използване на DocFetcher:
1. Инсталирайте DocFetcher с командата:
sudo snap install docfetcher
2. Стартирайте DocFetcher
3. Щракнете с десния бутон върху панела "Search Scope" долу вляво и изберете "Create index from"->"Folder."

4. Изберете папка, дайте име на индекса и щракнете върху бутона "Run".

5. Изчакайте, докато индексът бъде създаден. Когато е готов, ще видите отметка в панела "Search Scope" вляво.

6. Въведете думите за търсене и натиснете "Enter."

7. Щракнете върху име на файл, за да видите текстовите фрагменти, съдържащи търсените думи. Можете да навигирате в резултатите със стрелките "up" и "down".

Плюсове
- Безплатно приложение с отворен код.
- Има преносима версия.
- Може да търси в архивни формати (.zip, .7z, .rar, .tar).
- Предлага допълнителни опции за търсене – заместващи символи, подобни думи, търсене по близост и други.
Минуси
- Създаването на индекс може да отнеме много време за големи папки.
- Не може да извършва търсене, нечувствително към малки и главни букви.
- Навигацията в текстовите резултати не е удобна за потребителя.
- Не може да търси комбинация от думи в изречение.
5. Regexxer
Приложението regexxer предоставя богати възможности за използване на регулярни изрази в стил perl. То е безплатно приложение с отворен код и удобен графичен интерфейс, създадено през 2002 г.
Regexxer е наличен само за Linux и можете най-лесно да го инсталирате в Debian и Ubuntu.
Ето как можете да използвате Regexxer:
1. Инсталирайте приложението с командата:
sudo apt-get install regexxer
2. Стартирайте приложението, изберете папка за търсене и се уверете, че квадратчето "recursive" е отметнато.
3. Щракнете върху бутона "Find files".

4. Въведете термините за търсене в полето "Search" и щракнете върху бутона "Find".

5. Използвайте стрелките в долната част, за да навигирате в резултатите.

6. В левия панел можете да видите броя на намерените резултати в съответните файлове, а в десния панел – текста, съдържащ търсените думи.
Плюсове:
- Напълно безплатен и с отворен код.
- Лесен за инсталиране и използване.
- Опростен и интуитивен графичен интерфейс.
- Поддържа всички типове регулярни изрази в стил perl.
- Маркира търсените думи в резултатите.
- Не използва индексиране.
Минуси:
- Regexxer е по-бавен от други подобни приложения.
- Понякога спира да отговаря или се затваря неочаквано.
- Не може да търси в никакви други типове документи освен текстови файлове.
- Не може да търси комбинация от думи, които се срещат в едно изречение.
Заключение
Надявам се, че това ръководство за намиране на текстови файлове в Linux ви е харесало.
Напълно съм наясно, че към представените приложения могат да се добавят още много неща, както и че има много други полезни инструменти в тази ниша.
Сега бих искал да чуя и вас: кое от представените приложения е най-полезно за вас? Имате ли някакви проблеми при използването на тези инструменти? Искате ли да добавите още нещо важно по тази тема?
Споделете мнението си, като публикувате коментар в секцията за коментари по-долу.

