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

How Find Text Files Linux



За системния администратор работата с текстови файлове е често срещано явление. Може би трябва да намерите конкретен раздел от купчини лог файлове за отстраняване на проблеми? Или трябва бързо да намерите документа, който съдържа съществена информация?

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







Намиране на текст във файлове

В зависимост от броя файлове, по които трябва да извършите търсене, има два начина за извършване на текстово търсене: автоматизирано или ръчно. Ако трябва да работите с няколко текстови файла, ръчното търсене е по -подходящо. Ако обаче има стотици текстови файлове, тогава автоматизираното търсене е най -ефективното.



За автоматизирано търсене ще използваме grep. Grep идва предварително инсталиран на всеки дистрибутор на Linux. Що се отнася до ръчното търсене, всеки съвременен текстов редактор ще свърши работа.



Намерете текст във файлове с помощта на grep

В Linux grep е инструментът по подразбиране за търсене на текстове. Името му е получено от командата ed g/re/p, която означава глобално търсене на регулярен израз и отпечатване на съответстващи редове. Предлага се във всеки модерен дистрибутор на Linux.





Grep е инструмент за командния ред. Командната му структура е следната.

$захващане <опция> <regular_expression> <файлова пътека>

Както подсказва името на grep, моделът за търсене е описан с помощта на регулярен израз. Регулярният израз е специален тип низ, който описва модел, който да съвпада, да намира и управлява. За да научите повече за grep и регулярен израз, проверете използване на grep и egrep с регулярен израз .



За демонстрационни цели вземете примерен текстов файл. В този пример изтеглете GNU General Public License v3.0 текстов файл .

Основно търсене

Основният начин за използване на grep е да се търси основен низ.

Разгледайте следната команда grep. Той ще търси думата GNU в текстовия файл.

$захващане „GNU“lpg-3.0.текст

За да покажете номера на реда, използвайте флага -n.

$захващане GNU gpl-3.0.текст

За да извършите нечувствително към регистър търсене с помощта на grep, използвайте флага -i.

$захващане -nignu gpl-3.0.текст

В някои ситуации може да не искате да виждате съвпаденията за търсене, а само името на файла, където съвпадението се е случило. За да отпечатате само името на файла, използвайте флага -l. Тук звездичката означава да се използват всички текстови файлове в текущата директория.

$захващане -наgnu*

Можем също така да изпратим изхода на други команди към grep.

$коткаlpg-3.0.текст| захващане GNU

Редовен израз

Regex предлага интелигентен начин за фина настройка на търсенето. Има си свои правила. Въпреки това, различните приложения и езици за програмиране прилагат регулярен израз по различен начин. Ето няколко примера, които можете да използвате с grep.

За да определите, че низът ще бъде намерен при започване на ред, използвайте символа каретка (^).

$захващане ^ GNU gpl-3.0.текст

За да определите, че низът ще бъде намерен в края на ред, използвайте знака за долар ($).

$захващане към $ gpl-3.0.текст

За да опишете, че може да има някакъв знак на определено място на шаблона, използвайте символа точка (.). Например изразът G.U е валиден, ако има някакъв знак между G и U.

$захващане G.U gpl-3.0.текст

За да опишете, че може да има подмножество от знаци на определено място на шаблона, използвайте скобите ([]). Например изразът t [wo] o казва, че съвпадението е валидно само за двама и също.

$захващане T[Където]o gpl-3.0.текст

Разширен регулярен израз

Както подсказва името, разширеният регулярен израз може да прави по -сложни неща от основните регулярни изрази. За да използвате разширен регулярен израз с grep, трябва да използвате флага -E.

$захващане -роден <extension_regex> <файл>

За да търсите два различни низа, използвайте операторите OR (|).

$захващане -роденGNU|общ|Лиценз gpl-3.0.текст

Намиране на текст във файлове

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

$захващане <регулярно изражение> *

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

$захващане <регулярно изражение> <path_path>

Ако има папки, grep не ги изследва по подразбиране. За да кажете на grep да търси рекурсивно, използвайте флага -R.

$захващане -nR <регулярно изражение> <path_path>

Grip GUI

Ако предпочитате да работите с графичен интерфейс, но все пак искате да се насладите на функциите на grep, разгледайте searchmonkey. Това е интерфейсно решение за grep. Пакетът е достъпен за почти всички основни дистрибуции на Linux.

Намерете текст във файлове с помощта на nano

GNU Nano е прост и мощен текстов редактор, който се предлага с всеки дистрибутор на Linux. Той има вградени функции за търсене на текст в текстов файл.

Имайте предвид, че в този метод трябва да отворите текстовия файл и да търсите ръчно. Възможно е, ако има само няколко текстови файла, с които да работите. Ако има повече, тогава използването на grep е най -оптималният избор.

Отворете текстовия файл в nano.

$нано <файлова пътека>

За да търсите съвпадение на низ, натиснете Ctrl + W. След като въведете низ за търсене, натиснете Enter.

Намерете текст във файлове с помощта на Vim

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

Подобно на nano, Vim работи с един файл наведнъж. Ако имате няколко текстови файла, използването на grep е най -оптималният начин.

За да търсите в текстов файл, първо го отворете във Vim.

$дойдох <файлова пътека>

Въведете следната команда Vim и натиснете Enter.

$:/<search_term>

Намерете текст във файлове с помощта на GNOME Text Editor

Текстовият редактор на GNOME е текстовият редактор, който се доставя с работния плот на GNOME. Това е опростен текстов редактор с всички основни функции, които бихте очаквали. Това е хубава алтернатива на текстовите редактори на командния ред.

Подобно на nano и vim, същото внимание се отнася и за този метод. Ако броят на текстовите файлове е голям, тогава по -добре се придържайте към grep.

Отворете текстовия файл в текстов редактор. Натиснете Ctrl + F, за да изведете лентата за търсене.

Намерете текст във файлове, използвайки VS Code

Visual Studio Code е мощен текстов редактор с множество функции. Оптимизиран е за програмисти, които да се използват така, сякаш това е пълноценна IDE. Предлага се в почти всички големи дистрибуции на Linux.

Инсталирайте пакета Snap на кода на Visual Studio.

$sudoщракнетеИнсталирайкод-класически

Отворете текстовия файл във VS Code. Натиснете Ctrl + F, за да започнете търсенето.

Последни мисли

Има много начини за търсене на текст във файлове. Това е лесна задача за овладяване. Силно се препоръчва да овладеете командата grep, тъй като тя предлага най-голяма стойност по отношение на ефективност и лекота на използване.

Ако предпочитате GUI, тогава има много текстови редактори, от които да избирате. Всеки съвременен текстов редактор ще осигури опцията за търсене на текст.

Честит компютър!