grep

Команда Grep в Linux

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

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

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

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

$ sudo apt-get install grep

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

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

$ grep [опции] ШАБЛОН [ФАЙЛ ...]

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

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

$ ls -l | grep -i “низ

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

$ ls -l | grep -i тест

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

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

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

$ grep „низ“ име на файл

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

$ grep “служител” testfile1

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

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

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

$ grep “низ” filename1 filename2

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

$ grep “служител” testfile1 testfile2

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

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

$ grep „низ“ име на файл *

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

$ grep “служител” тест файл *

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

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

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

$ grep -i „низ“ име на файл

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

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

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

$ grep “начална ключова дума.* окончателна ключова дума ”име на файла

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

$ grep “това.* данни ”testfile1

Ще отпечата целия ред от testfile1 съдържащ израза (начална ключова дума „това“ и завършваща ключова дума „данни“).

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

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

$ grep -A „Низ“ име на файл

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

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

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

$ grep -A 2 -i „служител” testfile2

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

$ grep -B „Низ“ име на файл

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

$ grep -C „Низ“ име на файл

Открояване на търсенето

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

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

$ grep „низ“ име на файл --color

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

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

$ grep -c име на файл „низ“

Това е нашият примерен файл изглежда така:

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

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

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

$ grep -v име на файла „низ“

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

$ grep -v testfile3 „акаунт“

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

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

$ apt --инсталиран списък | grep автоматично

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

$ lscpu | grep Архитектура

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

Топ 5 карти за залавяне на игри
Всички сме виждали и обичаме поточни игри в YouTube. PewDiePie, Jakesepticye и Markiplier са само някои от най-добрите геймъри, които са спечелили мил...
Как да разработите игра на Linux
Преди десетилетие не много потребители на Linux биха прогнозирали, че любимата им операционна система един ден ще бъде популярна игрална платформа за ...
Пристанища с отворен код на търговски игрални машини
Безплатни разширения на играта с отворен код и междуплатформени игри могат да се използват за възпроизвеждане на стари, както и някои от доста скорошн...