Команда Grep в Linux

Grep Command Linux



Командата Grep (глобален печат с регулярни изрази) е най-мощната и редовно използвана помощна програма за командния ред на Linux. Използвайки Grep, можете да търсите полезна информация, като посочите критерии за търсене. Той търси определен модел на израз в определен файл. Когато намери съвпадение, той отпечатва всички редове на файл, които съответстват на посочения модел. Той е полезен, когато трябва да филтрирате през големи регистрационни файлове.

В тази статия ще обясним използването на помощната програма grep с различни примери. Ще използваме Debian 10 за обяснение на командите и методите, споменати в тази статия.







Инсталиране на Grep

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



$sudo apt-get install захващане

Използване на Grep

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



$захващане [настроики]МОДЕЛ[ФАЙЛ ...]

Търсете файлове

За да търсите име на файл в директория, която съдържа определен низ в него, можете да използвате grep по следния начин:





$ls -на | захващане низ

Например, за да търсите име на файл, който съдържа низ тест , командата ще бъде:

$ls-на| захващане–Итест

Тази команда изброява всички файлове, които съдържат низа тест .



Търсете низ във файл

За да търсите низ в определен файл, можете да използвате следния команден синтаксис:

$захващаненизово име на файл

Например, за търсене на низ тест във файл с име testfile1 , използвахме следната команда :

$захващанетест файл на служител 1

Горният изход е върнал изречението от testfile1 който съдържа низ служител .

Търсете низ в множество файлове

За да търсите низ в множество файлове, можете да използвате следния команден синтаксис:

$захващанениз име на файл1 име на файл2

Например, за да търсим низов служител в нашите два файла testfile1 и testfile2, използвахме следната команда:

$захващанеtestfile на служител1 testfile2

Горната команда ще изброи всички редове, които съдържат низовия служител от двата файла testfile1 и testfile2.

Можете също да използвате заместващ знак, ако всички имена на файлове започват с един и същ текст.

$захващаненизово име на файл*

Например, ако вземем горния пример, в който бяха нашите имена на файлове testfile1 и testfile2 , командата ще бъде:

$захващанетестов файл на служителите*

Търсете низ във файл, като игнорирате регистъра на низ

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

Можете да кажете на grep да игнорира случая на низ за търсене, като използвате –i флаг след grep, както следва:

$захващане–I низ име на файл

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

Търсете с помощта на регулярния израз

Ако се използва правилно, регулярният израз е много ефективна функция в grep. С командата Grep можете да дефинирате регулярен израз с начална и крайна ключова дума. По този начин няма да е необходимо да въвеждате целия ред с командата grep. За тази цел може да се използва следният синтаксис.

$захващаненачална ключова дума.*завършващоиме на файла на ключовата дума

Например, за да търсим ред във файл с име testfile1, който започва с низа this и завършва с низовите данни, използвахме следната команда:

$захващанетова.*файл с данни1

Той ще отпечата целия ред от testfile1 съдържащ израза (начална ключова дума this и крайна информация за ключовата дума).

Отпечатайте определен брой редове след/преди низа за търсене

Можете също така да покажете конкретния брой редове във файл преди/след съвпадение на низ заедно със съответстващия низ. За тази цел може да се използва следният синтаксис:

$захващане -ДА СЕ <н>низово име на файл

Той ще покаже N брой редове, след като низът е съпоставен в посочения файл, включително съответстващия низ.

Например, това е нашият примерен файл с име testfile2 .

Следващата команда ще изведе съответстващия ред, съдържащ низа служител , заедно с 2 реда след него.

$захващане-ДА СЕ2–I тест файл на служител2

По същия начин, за да се покаже N брой редове преди съответстващия низ в конкретен файл, използвайте следния синтаксис:

$захващане <н>низово име на файл

За да покажете N брой редове около низа в конкретен файл, използвайте следния синтаксис:

$захващане -° С <н>низово име на файл

Маркиране на търсенето

Grep по подразбиране отпечатва съответстващи редове, но не показва коя част от реда е съпоставена. Ако използвате опция –color с grep, тя ще покаже къде се показват машинните низове във вашия файл. Grep по подразбиране използвайте червения цвят за подчертаване.

За тази цел може да се използва следният синтаксис:

$захващаненизово име на файл-цвят

Преброяване на броя на съвпаденията

Ако искате да преброите колко пъти определена дума се появява в конкретен файл, можете да използвате опцията grep с –c. Той връща само броя на съвпаденията, а не самите мачове. За тази цел може да се използва следният синтаксис:

$захващане–C име на низ на файл

Примерният ни файл изглежда така:

Следва пример за команда, която връща броя пъти на думата файл се появи във файл с име testfile3 .

Обърнато търсене

Понякога искате да извършите обратно търсене, което показва всички редове, с изключение на съответстващите на входа. За да направите това, просто използвайте знака –v, последван от grep:

$захващане–V низ име на файл

Например, за да се покажат всички редове във файл testfile3 които не съдържат думата акаунт в тях, използвахме следната команда:

$захващане–V тестов файл на акаунт3

Използване на Grep с други команди

Grep може да се използва и за филтриране на необходимия резултат от извеждането на различни команди. Например от apt - инсталиран списък команден изход, искате да намерите само пакетите, които са инсталирани автоматично, можете да филтрирате резултата с помощта на grep, както следва:

$подходящ-инсталирансписък| захващанеавтоматичен

По същия начин lscpu предоставя подробна информация за процесора. Ако просто се интересувате от информацията относно архитектурата на процесора, можете да я филтрирате, като използвате следната команда:

$lscpu| захващанеАрхитектура

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