grep

Linux grep команда

Linux grep команда
Grep е един от най-удобните инструменти, с които можете да разполагате. Тази помощна програма за команден ред извършва търсене в набори от данни с обикновен текст. Греп всъщност е съкращение от „жлокално търсене a rъглова дxpression и стрринт ”. Греп започна своето пътуване като част от семейството на UNIX. С течение на времето той вече е достъпен за всички популярни платформи като Linux, Mac, BSD и дори Windows!

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

Греп употреба

Проверка на съществуването

Ако използвате някакъв дистрибутор на Linux, значи вече имате инсталиран grep. Изпълнете следната команда в терминала.

grep --версия

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

Основи

Основното използване на grep следва следната структура.

grep

Или за по-лесно разбиране използвайте този.

grep

В този случай grep ще извърши търсене във файла и ще отпечата всички редове, които включват модела (термин за търсене).

grep python ~ / Desktop / PackageList.текст

Греп претърси файла „PackageList.txt ”Генерирах по-рано и отпечатах всички редове, които включват„ python ”.

Същата тази операция може да се извърши и по друг начин. Вижте следния пример.

cat ~ / Desktop / PackageList.txt | grep python

Тук, използвайки командата “cat”, изпратих съдържанието на файла “PackageList.txt ”за греп. Използвайки изхода на cat, grep извърши търсенето и отпечата редовете, които съдържат термина за търсене.

Сега идва забавно нещо. Можете буквално да подреждате множество команди grep точно така.

cat ~ / Desktop / PackageList.txt | grep - | grep p | grep python

Първият grep филтрира до редовете с тире, вторият филтър надолу до редовете с p, а последният grep филтрира до редовете с python. Има смисъл?

Чувствителност към малки и големи букви

При извършване на търсене чувствителността на малки и големи букви е основен въпрос. По подразбиране grep е чувствителен към малки и големи букви.

Например, търсенето на „Python“ няма да покаже никакъв резултат.

cat ~ / Desktop / PackageList.txt | grep Python

За да направите греп регистъра „нечувствителен“, добавете следната опция.

cat ~ / Desktop / PackageList.txt | grep -i Python

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

Да кажем, че имате директория с множество текстови файлове. Вашата цел е да идентифицирате файла (ите), които съдържат или не съдържат шаблон (термин за търсене).

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

За изброяване на файлове, съдържащи съвпадение, използвайте флага “-l”.

grep -l / search / directory / *

Както подсказва резултатът, терминът „python“ присъства във всички 3 файла, намиращи се в директорията „Desktop“.

За изброяване на файлове без никакво съвпадение използвайте флага “-L”.

grep -L / search / directory / *

"Няма съвпадение.txt ”е единственият файл, който не съдържа термина„ python ”.

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

Поведението по подразбиране на grep е да отпечатва само редовете със съответстващия шаблон, вдясно? Време е да обърнем процеса. Този път ще печатаме само редовете БЕЗ съвпадащия шаблон.

Просто предайте опцията “-v”, за да grep.

cat ~ / Desktop / PackageList.txt | grep -i -v Python

Печат на редове преди / след мача

По подразбиране grep ще отпечата само реда, който съответства на шаблона за търсене. Използвайки тази техника, можете да кажете на grep да отпечата редове и преди / след мача.

За отпечатване на линии преди мача използвайте следната структура.

grep -B

Тук 5 е числовият ред, който grep ще отпечата ПРЕДИ съответстващия ред.

За отпечатване на линии след мача използвайте следната.

grep -A

Какво ще кажете за отпечатване както преди, така и след съответстващата линия? В този случай използвайте флага “-C”.

grep -C

Номер на реда

Когато grep показва изхода, той не споменава номера на реда. За свързаните номера на редове използвайте флага „-n“.

grep -n

Една дума

Ако се използва флага “-w”, grep ще третира шаблона като цяла дума.

grep -w

Ограничаване на греп търсенето

Grep позволява да се посочи броят на редовете за търсене във файла. Този метод е полезен, ако имате работа с голям файл (като системен дневник). Използвайте флага “-m”.

grep -m

Рекурсивно търсене

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

grep -R

Или,

grep -r

Често намирам да използвам тази рекурсивна функция заедно с флага -l.

Тих режим

Grep може да се изпълнява в „тих“ режим. Когато работи в "тих" режим, grep няма да отпечата никакви изходи на терминала. Вместо това ще върне 0 (най-малко, намерено е съвпадение) или 1 (не е намерено съвпадение).

grep -q
echo $?

Regex

Grep също така позволява търсене на регулярни изрази (регулярни изрази). Това добавя съвсем ново ниво на сложност и използваемост на grep като инструмент за търсене.

Например можете да използвате скоби, за да търсите едновременно „твърде“ и „две“.

cat ~ / Desktop / gpl-3.0.txt | grep t [wo] o

Този следващ пример ще отпечата реда само ако съвпадението се случи в самото начало на реда.

grep ^ GNU ~ / Desktop / gpl-3.0.текст

Що се отнася до съвпадението на финала, използвайте този.

grep ви $ ~ / Desktop / gpl-3.0.текст

Ако искате да използвате регулярния израз на Perl, използвайте флага “-P”. Той ще третира модела като Perl регулярно изражение.

grep -P

Финални мисли

Grep предлага множество начини за персонализиране на функцията за търсене. Наличието на регулярни изрази отключва изцяло нов хоризонт за потенциално използване на grep. Готиното е, че можете да използвате както общи, така и Perl регулярни изрази; с който и да се чувствате комфортно.

За най-подробно обяснение винаги се консултирайте с ръководството.

човек grep

Наздраве!

Как да използвам Xdotool за стимулиране на кликвания и натискания на мишката в Linux
Xdotool е безплатен инструмент с команден ред с отворен код за симулиране на щраквания и натискания на мишката. Тази статия ще обхване кратко ръководс...
Топ 5 продукти за ергономична компютърна мишка за Linux
Продължителната употреба на компютър причинява ли болка в китката или пръстите? Страдате ли от схванати стави и постоянно ли ви се налага да си ръкува...
Как да променяте настройките на мишката и тъчпада с помощта на Xinput в Linux
Повечето дистрибуции на Linux се доставят с библиотека “libinput” по подразбиране за обработка на входни събития в системата. Той може да обработва вх...