logo

Команда Grep у Linux/Unix із прикладами

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

Це утиліта командного рядка для пошуку груп даних у звичайному тексті для рядків, які збігаються з регулярним виразом. Ім'я 'хватка' походить від команди, тобто ed, яка містить той самий ефект. Спочатку grep був розроблений для операційної системи Unix, але пізніше він став доступним для кожної Unix-подібної системи та деяких інших, наприклад OS 9.

лінійний пошук в java

Фільтр grep знаходить файл для певного шаблону символів і показує кожен рядок, який містить цей шаблон. Символи мають бути взяті в лапки, якщо вони трапляються в параметрі шаблону зі спеціальним значенням для оболонки. Зазвичай ми повинні взяти весь шаблон в лапки, якщо параметр шаблону не є звичайним рядком.

У такому виразі, як [a-z], знак мінус (-) cml описує діапазон на основі поточного порядку сортування. Порядок зіставлення може визначати еквівалентні класи в діапазонах символів для використання. Команда grep передбачає стандартний вхід, якщо файли не згадуються.

Шаблон називається регулярним виразом, який міститься у файлі. Шаблон — це обмежені регулярні вирази у форматі команди egrep або ed. Команда grep застосовує надійний недетермінований алгоритм. Це стане в нагоді, коли нам потрібно відфільтрувати великі журнали.

Коротка історія grep

До того, як вона отримала назву, grep була конфіденційною утилітою, визначеною Кен Томпсон щоб знайти файли для кількох шаблонів. Невідомо про його існування, Даг Макллрой попросив Томпсона вказати таку функцію. Відповів, що за одну ніч придумає таку утиліту. Томпсон вносив удосконалення та виправляв болота протягом приблизно однієї години у своїй програмі, відомій як 's' (або пошук). Наступного дня він представив цю функцію Макілрою, який сказав, що вона така, як він хотів. Розповідь Томпсона може описати переконання, що команда grep була вказана вночі.

Томпсон вказав початкову версію на мові асемблера PDP-11 для підтримки Лі Е. МакМохан перевірка тексту Federalist Papers для визначення авторства окремої статті. Текстовий редактор ed підтримував регулярні вирази, але не міг використовуватися для такого великого тексту; Томпсон скопіював цей код у окремий інструмент. Він вибрав назву завдяки в ред. Команда grep виводить кожен рядок так само, як описаний шаблон. По-перше, grep був доданий у версії 4 Unix, кажучи, що 'його зазвичай називають прототипом програмного засобу' , Mcllroy схвалив grep з 'безповоротно вкорінюється' Філософія інструментів Томпсона в 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 Tools ASCII для версії 2 MSX-DOS.
  • Команди fgrep, egrep і grep надіслано в ОС IBM i.
    Програмне забезпечення Adobe InDesign має функції GREP (починаючи з версії CS3) у діалоговому вікні зміни/знаходження вкладки «GREP» і вказується за допомогою CS4 у «Стилі GREP» стилі абзаців.

Як встановити grep в Linux?

Grep попередньо встановлено майже в кожному дистрибутиві Linux. Однак у випадку, якщо його немає в нашій системі, ми можемо встановити його за допомогою наведеної нижче команди у вікні терміналу:

 $ sudo apt-get install grep 

grep з трубою

вибрати з кількох таблиць у sql

Команда 'grep' зазвичай використовується з каналом (|) .

Синтаксис:

 command | grep 

приклад:

 cat marks.txt | grep 9 

Фільтри Linux Grep1

Подивіться на наведений вище знімок, команда grep фільтрує всі дані, що містять «9».

grep без каналу

Його також можна використовувати без труби.

Синтаксис:

основна мова java
 grep 

приклад:

 grep 9 marks.txt 

Фільтри Linux Grep2

Подивіться на наведений вище знімок, команда grep виконує ту саму роботу, що й попередній приклад, але без каналу.

параметри grep

    grep -vM: команда 'grep -v' відображає рядки, які не відповідають вказаному слову.

    Синтаксис:

    цикли java
     grep -v 

    приклад:

     grep -v 9 marks.txt 

    Фільтри Linux Grep3

    Подивіться на наведений вище знімок команди 'grep -v 9 marks.txt' відображає рядки, які не містять наше пошукове слово '9'.

    grep -i: Команда 'grep -i' фільтрує вихід без урахування регістру.

    Синтаксис:

     grep -i 

    приклад:

     grep -i red exm.txt 

    Фільтри Linux Grep4

    Подивіться на наведений вище знімок команди '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....) для відображення будь-якої кількості рядків.

    Синтаксис:

    експорт gimp як jpg
     grep -A grep -B grep -C 

    приклад:

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

    Фільтри Linux Grep5

    Подивіться на наведений вище знімок команди 'grep -A1 жовтий exm.txt' відображає пошуковий рядок із наступним рядком, команда 'grep -B1 жовтий exm.txt' відображає пошуковий рядок з одним попереднім рядком і командою 'grep -C1 жовтий exm.txt' відображає пошуковий рядок з одним попереднім і наступним рядком.