Как да търсите текст в множество файлове в Linux

За потребителите на Linux необходимостта да търсят думи в един или няколко файла възниква доста често.

 

Има много различни приложения, които могат да свършат добра работа за вас. Кое приложение ще бъде най-подходящо за вас зависи от вашите нужди и предпочитания. Приложенията се различават основно по следните характеристики:

  • Инструменти за команден ред срещу инструменти с графичен интерфейс.
  • Дали могат да търсят само в текстови файлове или във всички често използвани типове документи.
  • Дали използват индексиране или не.

 

В тази статия ще ви запознаем с различни типове приложения за търсене, за да можете да изберете най-подходящото за вас.

 

Забележка: Ако сте потребител на Mac, можете да разгледате нашата статия Как да търсите на Mac.

 

 

1. Търсене в текстови файлове с инструмента grep

 

За инструмента grep

 

Най-популярният инструмент за търсене на текст в Linux от командния ред е grep. Той е създаден преди повече от 45 години! Негов разработчик е американският компютърен учен Кен Томпсън.

 

Grep може да търси във всякакви текстови файлове (.txt, .html, .xml и др.), но не може да търси в други типове документи като OpenOffice файлове, PDF файлове и други.

 

Всъщност командата grep е в топ 15 на най-използваните команди в Linux според Hostinger.

 

Top 15 most used commands in Linux

 

Помощната програма се поддържа от операционните системи UNIX, Linux и Mac.

 

Съществува и Windows алтернатива на grep, наречена findstr, за която можете да прочетете повече в нашата статия Как да търсите файлове в Windows 10.

 

 

Как да използвате инструмента grep

 

Инструментът grep е вграден в операционната система, така че не е необходимо да го инсталирате.

 

Най-простият синтаксис за намиране на низ в един файл с помощта на командата grep е:
grep 'searched-word' filename

 

По подразбиране търсенето с grep е чувствително към малки и главни букви.

 

Нека постепенно да добавим най-полезните опции към нашето търсене.

 
1. Направете търсенето нечувствително към малки и главни букви с опцията "-i":
grep -i 'searched-word' filename

 
2. Търсете рекурсивно във всички файлове в дадена директория с опцията "-r":
grep -ir 'searched-word' '/directory'

 
3. Търсете само цели думи с опцията "-w":
grep -irw 'searched-word' '/directory'

 
4. Отпечатайте номерата на редовете, в които е намерена търсената дума, с опцията "-n":
grep -irwn 'searched-word' '/directory'

 
5. Синтаксис за търсене на няколко думи:
grep -ir '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. Изберете папката, в която ще се търси.
 
SearchMonkey choose a folder to search
 
4. Отметнете полето "Containing", въведете думите за търсене и натиснете "Enter."
 
SearchMonkey check containing checkbox to prepare it for search
 
5. Щракнете върху файл от списъка в левия панел, за да видите намерените текстови фрагменти.
 
SearchMonkey click on a file to see the passages found

 

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

 

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

 

SearchMonkey use advanced search

 

С 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."
 
Recoll start indexing your files and folders
 
4. В съобщението "Missing helper programs" щракнете върху "OK."
 
Recoll next step for indexing
 
5. Въведете термините за търсене и натиснете "Enter."

 

6. От списъка с резултати щракнете върху "snippets", за да видите всички текстови фрагменти, съдържащи търсените думи.
 
Recoll see passages of text found

 

7. В прозореца "Snippets" ще видите страниците и редовете, в които са намерени вашите търсени думи.
 
Recoll see the pages and the lines containing your search words

 

Ако трябва да търсите в папка извън вашата "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."
 
DocFetcher Linux create an index of files and folders

 

4. Изберете папка, дайте име на индекса и щракнете върху бутона "Run".
 
DocFetcher Linux choose a folder to search

 

5. Изчакайте, докато индексът бъде създаден. Когато е готов, ще видите отметка в панела "Search Scope" вляво.
 
DocFetcher Linux see folders that are indexed
 
6. Въведете думите за търсене и натиснете "Enter."

 

DocFetcher Linux type words to search for
 
7. Щракнете върху име на файл, за да видите текстовите фрагменти, съдържащи търсените думи. Можете да навигирате в резултатите със стрелките "up" и "down".
 
DocFetcher Linux see passages found

 

Плюсове

  • Безплатно приложение с отворен код.
  • Има преносима версия.
  • Може да търси в архивни формати (.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".
 
Regexxer start your search

 

4. Въведете термините за търсене в полето "Search" и щракнете върху бутона "Find".
 
Regexxer type your search words
 
5. Използвайте стрелките в долната част, за да навигирате в резултатите.
 
Regexxer navigate the results found
 
6. В левия панел можете да видите броя на намерените резултати в съответните файлове, а в десния панел – текста, съдържащ търсените думи.

 

Плюсове:

  • Напълно безплатен и с отворен код.
  • Лесен за инсталиране и използване.
  • Опростен и интуитивен графичен интерфейс.
  • Поддържа всички типове регулярни изрази в стил perl.
  • Маркира търсените думи в резултатите.
  • Не използва индексиране.

 

Минуси:

  • Regexxer е по-бавен от други подобни приложения.
  • Понякога спира да отговаря или се затваря неочаквано.
  • Не може да търси в никакви други типове документи освен текстови файлове.
  • Не може да търси комбинация от думи, които се срещат в едно изречение.

 

 

Заключение

Надявам се, че това ръководство за намиране на текстови файлове в Linux ви е харесало.

 

Напълно съм наясно, че към представените приложения могат да се добавят още много неща, както и че има много други полезни инструменти в тази ниша.

 

Сега бих искал да чуя и вас: кое от представените приложения е най-полезно за вас? Имате ли някакви проблеми при използването на тези инструменти? Искате ли да добавите още нещо важно по тази тема?

 

Споделете мнението си, като публикувате коментар в секцията за коментари по-долу.

За автора
Димитър Стаменов е софтуерен разработчик и предприемач с повече от 25 години опит в технологичния свят. Той е създал инструменти като SeekFast (едно от най-популярните приложения за търсене на настолни компютри), Preslav ERP (система за управление на бизнес процеси в предприятия) и SEORanks (предпочитан сайт за SEO инструменти). Освен това е преподавал във водещи технологични академии, включително Telerik Academy и Software University Sofia. В блога на SeekFast Димитър споделя съвети, идеи и практически решения, за да помогне на читателите да извлекат максимума от своя софтуер и да вършат нещата по-бързо.

Оставете коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *