Както подсказва името на grep, моделът за търсене се описва с помощта на регулярен израз. Регулярният израз е специален тип низ, който описва модел за съвпадение, намиране и управление. За да научите повече за grep и регулярния израз, разгледайте използването на grep и egrep с регулярен израз.
За демонстрационни цели вземете примерен текстов файл. В този пример изтеглете GNU General Public License v3.0 текстов файл.
Основно търсене
Основният начин за използване на grep е търсенето на основен низ.
Погледнете следната команда grep. Ще търси думата „GNU“ в текстовия файл.
$ grep "GNU" gpl-3.0.текст
За да покажете номера на реда, използвайте флага „-n“.
$ grep -n “GNU” gpl-3.0.текст
За да извършите търсене без регистра, използвайки grep, използвайте флага „-i“.
$ grep -ni “gnu” gpl-3.0.текст
Може да не искате да видите съвпаденията за търсене, но само името на файла, където съвпадението се е случило в някои ситуации. За да отпечатате само името на файла, използвайте флага “-l”. Тук звездичката означава да се използват всички текстови файлове в текущата директория.
$ grep -l “gnu” *
Също така можем да насочим изхода на други команди към grep.
$ котка gpl-3.0.txt | grep -n “GNU”
Редовен израз
Regex предлага интелигентен начин за фина настройка на търсенето. Той има свои собствени правила. Различните приложения и езици за програмиране обаче прилагат регулярния израз по различен начин. Ето няколко примера, които можете да използвате с grep.
За да определите, че низът ще бъде намерен при стартиране на ред, използвайте символа карета (^).
$ grep -n “^ GNU” gpl-3.0.текст
За да определите, че низът се намира в края на ред, използвайте знака за долар ($).
$ grep -n “до $” gpl-3.0.текст
За да опишете, че може да има всеки символ на определено място на шаблона, използвайте знака за период (.). Например изразът „G.U ”е валидно, ако има някакъв знак между„ G ”и„ U ”.
$ grep -n “G.U ”gpl-3.0.текст
За да опишете, че може да има подмножество от символи на определено място на шаблона, използвайте скобите ([]). Например изразът „t [wo] o“ казва, че съвпадението е валидно само за „две“ и „твърде“.
$ grep -n “t [wo] o” gpl-3.0.текст
Разширен регулярен израз
Както подсказва името, разширеният регулярен израз може да прави по-сложни неща от основните регулярни изрази. За да използвате разширен регулярен израз с grep, трябва да използвате флага “-E”.
$ grep -nE За да търсите два различни низа, използвайте операторите OR (|).
$ grep -nE “GNU | Общи | Лиценз” gpl-3.0.текст
Намиране на текст във файлове
Сега идва основната част. Вместо ръчно да казва на grep файла да извърши търсенето, grep може да го направи автоматично. В следващата команда grep ще използва всички налични текстови файлове в текущата директория за търсене на шаблона.
$ grep * Ако искате grep да извърши търсенето в друга директория, трябва да посочите местоположението.
$ grep
Ако има папки, grep не ги изследва по подразбиране. За да кажете на grep да търси рекурсивно, използвайте флага “-R”.
$ grep -nR
Grep GUI
Ако предпочитате да работите с GUI, но все пак искате да се насладите на функциите на grep, проверете searchmonkey. Това е първоначално решение за grep. Пакетът се предлага на почти всички основни дистрибуции на Linux.
Намерете текст във файлове с помощта на nano
GNU Nano е прост и мощен текстов редактор, който се предлага с всякакви дистрибуции на Linux. Той има вградени функции за търсене на текст в текстов файл.
Имайте предвид, че при този метод трябва да отворите текстовия файл и да търсите ръчно. Изпълнимо е, ако има само шепа текстови файлове, с които да работите. Ако има повече, тогава използването на grep е най-оптималният избор.
Отворете текстовия файл в nano.
$ нано
За да търсите съвпадение на низове, натиснете „Ctrl + W“. След като въведете низа за търсене, натиснете „Enter“.
Намерете текст във файлове с помощта на Vim
Vim е добре познат и известен текстов редактор. Това е еквивалент на командния ред на съвременен текстов редактор. Vim се предлага с множество разширени функции като плъгини, макроси, автоматично попълване, филтри и т.н.
Подобно на nano, Vim работи с по един файл наведнъж. Ако имате няколко текстови файла, тогава използването на grep е най-оптималният начин.
За да търсите в текстов файл, първо го отворете във Vim.
$ vim
Въведете следната команда на Vim и натиснете „Enter“.
$: /
Намерете текст във файлове с помощта на GNOME Text Editor
Текстовият редактор на GNOME е текстовият редактор, който се доставя с работния плот на GNOME. Това е опростен текстов редактор с всички основни функции, които бихте очаквали. Това е хубава алтернатива на текстовите редактори на командния ред.
Подобно на nano и vim, същото внимание се отнася и за този метод. Ако броят на текстовите файлове е голям, тогава по-добре се придържайте към grep.
Отворете текстовия файл в Text Editor. Натиснете „Ctrl + F“, за да изведете лентата за търсене.
Намерете текст във файлове, използвайки VS Code
Visual Studio Code е мощен текстов редактор с множество функции. Той е оптимизиран за програмисти, за да се използва, сякаш е пълноправен IDE. Той е достъпен за почти всички основни дистрибуции на Linux.
Инсталирайте модулния пакет Visual Studio Code.
$ sudo snap инсталационен код --classic
Отворете текстовия файл във VS Code. Натиснете “Ctrl + F”, за да започнете да търсите.
Финални мисли
Има много начини за търсене на текст във файлове. Лесна задача за овладяване. Силно се препоръчва да овладеете командата grep, защото тя предлага най-голяма стойност по отношение на ефективността и лекотата на използване.
Ако предпочитате GUI, тогава има многобройни текстови редактори, от които да избирате. Всеки модерен текстов редактор ще предостави опция за търсене на текст.
Щастливи компютри!