В тази статия ще обясним използването на помощната програма 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 може да спести много време, ако трябва да разгледате големи конфигурационни или регистрационни файлове и да прегледате полезна информация чрез тях.