logo

Команда Grep в Linux/Unix с примери

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

Това е помощна програма от командния ред за търсене на групи данни в обикновен текст за редове, които са същите като регулярен израз. Името 'хват' идва от командата, т.е. ed, която съдържа същия ефект. Първоначално grep беше проектиран за операционната система Unix, но по-късно стана достъпен за всяка Unix-подобна система и няколко други като OS 9.

какво е компютър

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

В израз като [a-z] знакът минус (-) cml описва диапазон въз основа на текущия ред на съпоставяне. Поръчката за съпоставяне може да указва еквивалентни класове в диапазони от символи за използване. Командата grep приема stdin, когато не се споменават файлове.

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

Кратка история на grep

Преди да бъде озаглавен, grep беше поверителна помощна програма, определена от Кен Томпсън за намиране на файлове за няколко модела. Неизвестен за съществуването си, Дъг Макилрой поиска от Томпсън да посочи такава функция. Отговори, че за една нощ ще измисли такава програма. Томпсън направи подобрения и коригира блата за около един час в своята програма, известна като 'с' (или търсене). Той представи функцията на Макилрой на следващия ден, който каза, че е същата, каквато иска. Разказът на Томпсън може да опише убеждението, че командата grep е била зададена за една нощ.

Thompson посочи първоначалната версия на асемблерния език PDP-11 за поддръжка Лий Е. Макмохан проверка на текста на Federalist Papers, за да се определи авторството на отделния документ. Редакторът на ed текст имаше поддръжка за регулярен израз, но не можеше да се използва за толкова голям текст; Томпсън копира този код в самостоятелен инструмент. Той избра името поради изд. командата grep ще отпечата всеки ред по същия начин като описания модел. Първо, grep беше добавен във версия 4 Unix, казвайки това „обикновено се цитира като прототипен софтуерен инструмент“ , Mcllroy одобри grep с 'невъзвратимо вкореняване' инструменти философия на Thompson в Unix.

Реализации на grep

Редица реализации на grep присъстват в няколко среди за разработка на софтуер и операционни системи. Ранните версии включват fgrep и egrep, въведени във версия 7 на Unix. Версията egrep поддържа синтаксис за разширен регулярен израз, включен от Алфред Ахо след оригиналната реализация на регулярен израз на Кен Томпсън. Версията fgrep намира всеки списък с фиксирани низове с Алгоритъм за съпоставяне на низове на Aho-Corasick . Тези бинарни файлове на версията са достъпни в съвременните системи, като се свързват към grep или извикват grep скрипт на обвивка, като използват правилния флаг, добавен, докато обикновено се разполагат в POSIX системите.

Други команди включват 'хват' дума за представяне, те са инструменти за намиране, обикновено такива, които зависят от съвпадения на регулярни изрази. Например, полезността, т.е. 'pgrep' , показва процесите, чиито заглавия са същите като предоставения регулярен израз.

  • Grep е заглавието на вградената функция, която търси елементи в списък, които забавляват определено свойство в Perl програмен език.
  • Обикновено тази функция от по-висок ред се извиква 'филтър' или 'където' на друг език.
  • Командата, т.е. pcregrep , е реализация на grep, която използва синтаксиса за регулярен израз на Perl. Същата функционалност може да се добави към grep GNU версията с помощта на флага -P.
  • Също така, grep портовете (напр. in GnuWin32 и Cygwin ) се изпълнява на Microsoft Windows. Няколко версии на Windows предоставят същата команда findstr или qgrep.
  • Освен това командата grep е част от инструментите MSX-DOS2 на ASCII за версия 2 на MSX-DOS.
  • Командите fgrep, egrep и grep са изпратени към IBM i OS.
    Софтуерът Adobe InDesign има GREP функции (от изданието CS3) в диалоговия прозорец за промяна/намиране на раздела „GREP“ и е указан с помощта на CS4 в „GREP стилове“ стилове на параграфи.

Как да инсталирам grep в Linux?

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

 $ sudo apt-get install grep 

grep с тръба

сравняване на низове в java

Командата 'grep' обикновено се използва с тръба (|) .

Синтаксис:

 command | grep 

Пример:

 cat marks.txt | grep 9 

Linux Grep филтри1

Вижте снимката по-горе, командата grep филтрира всички данни, съдържащи „9“.

grep без тръба

Може да се използва и без тръба.

Синтаксис:

преобразуване на java низ в int
 grep 

Пример:

 grep 9 marks.txt 

Linux Grep филтри 2

Погледнете моментната снимка по-горе, командата grep върши същата работа като по-ранния пример, но без тръба.

grep опции

    grep -vM: Командата 'grep -v' показва редове, които не съответстват на определената дума.

    Синтаксис:

    екраниращ символ java
     grep -v 

    Пример:

     grep -v 9 marks.txt 

    Linux Grep филтри 3

    Погледнете горната моментна снимка, команда 'grep -v 9 marks.txt' показва редове, които не съдържат нашата дума за търсене „9“.

    grep -i: Командата 'grep -i' филтрира изхода без значение за главни и малки букви.

    Синтаксис:

     grep -i 

    Пример:

     grep -i red exm.txt 

    Linux Grep филтри4

    Погледнете горната моментна снимка, команда 'grep -i red exm.txt' показва всички редове, съдържащи „червено“, независимо дали в главни или малки букви.

    grep -A/ grep -B/ grep -C

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

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

    grep -C команда се използва за показване на ред след и ред преди резултатът.

    Можете да използвате (A1, A2, A3.....)(B1, B2, B3....)(C1, C2, C3....) за показване на произволен брой редове.

    Синтаксис:

    c++ конвертира int в низ
     grep -A grep -B grep -C 

    Пример:

     grep -A1 yellow exm.txt grep -B1 yellow exm.txt grep -C1 yellow exm.txt 

    Linux Grep филтри 5

    Погледнете горната моментна снимка, команда 'grep -A1 жълт exm.txt' показва търсения ред със следващия следващ ред, команда 'grep -B1 жълт exm.txt' показва търсения ред с един предходен ред и команда 'grep -C1 жълт exm.txt' показва търсения ред с един предходен и следващ ред.