• Главная
  • Карта сайта
Не найдено

У чому різниця між Grep, Egrep і Fgrep?

  1. Деякі спеціальні метасимволи grep:
  2. команда Grep
  3. команда egrep
  4. команда fgrep
  5. висновок
  6. Курси Cisco і Linux з працевлаштуванням!

Підписуйтесь на оновлення нашого блогу і додавайтеся до нас в соціальні мережі:

Дякую що ви з нами!

Одним з відомих інструментів пошуку в Unix-подібних системах, які можна використовувати для пошуку всього, будь то файл або рядок або кілька рядків у файлі, - це утиліта grep. Він дуже великий в функціональності, за рахунок великої кількості підтримуваних їм опцій, таких як: пошук з використанням строкового шаблону або регулярних виразів шаблон або perl based регулярних виразів і т.д.

Через його різних функціональних можливостей інструмент grep має безліч варіантів, включаючи egrep (Extended GREP), fgrep (Fixed GREP), pgrep (Process GREP), rgrep (рекурсивний GREP) і т.д. Але ці варіанти мають незначні відмінності від оригінального grep.

У цій статті ми розберемося з відмінностями між трьома основними варіантами: «grep», «egrep» і «fgrep». Щоб користувачі Linux знали, що вибирати відповідно до своїх вимог.

Деякі спеціальні метасимволи grep:

  • + - еквівалентно одному або декільком входженням попереднього символу.
  • ? - це означає хоча-б одне повторення попереднього символу. Так запис «a?» Відповідатиме «a» або «aa».
  • (- початок вираження чергування.
  • ) - кінець виразу чергування.
  • | - зіставлення будь-якого з виразів, розділених символом '| '. Наприклад: «(a | b) cde» відповідатиме «acde», або «bcde».
  • {- цей метасимвол вказує початок специфікатор діапазону. Наприклад: «a {2}» відповідає входженню «aa» в файлі 2 рази.
  • } - цей метасимвол вказує кінець специфікатор діапазону.

Відмінності між grep, egrep і fgrep

Деякі основні відмінності між grep, egrep і fgrep можна виділити наступним чином. Для цього набору прикладів ми приймаємо файл, в якому виконується операція:

Підписуйтесь на оновлення нашого блогу і додавайтеся до нас в соціальні мережі:   Дякую що ви з нами
команда Grep

Grep або Global Regular Expression Print - основна програма пошуку в Unix-подібних системах, яка може шукати будь-який тип рядка в будь-якому файлі або списку файлів або навіть виводити будь-яку команду.

Як шаблон пошуку він використовує звичайні регулярні вирази, крім звичайних рядків. В Basic Regular Expressions (BRE) метасимволу на кшталт: '{', '}', '(', ')', '|', '+', '?' втрачають свій сенс і вважаються нормальними символами рядка і повинні бути виділені спеціальним чином, якщо їх слід розглядати як спеціальні символи.

Крім того, grep використовує алгоритм Boyer-Moore для швидкого пошуку будь-якого рядка або регулярного виразу.

$ Grep -C 0 '(f | g) ile' check_file $ grep -C 0 '\ (f \ | g \) ile' check_file

В наведеному вище прикладі, коли команда запускається без екранування '(' ')' і '|'  , Потім grep шукає повну рядок, тобто «(f | g) ile» в файлі
В наведеному вище прикладі, коли команда запускається без екранування '(' ')' і '|' , Потім grep шукає повну рядок, тобто «(f | g) ile» в файлі. Але коли спеціальні символи були екрановані, grep обробляє їх як метасимволу і шукає слова «file» або «gile» в файлі.

команда egrep

Egrep або grep -E - це інша версія grep або Extended grep. Ця версія grep ефективна і швидка, коли справа доходить до пошуку шаблону регулярних виразів, оскільки вона обробляє метасимволу як є і не замінює їх як рядки. Egrep використовує ERE або Extended Extended Expression.

У разі egrep, навіть якщо ви не уникаєте метасимволу, команда буде ставитися до них як до спеціальних символів і замінювати їх своїм особливим значенням замість того, щоб розглядати їх як частину рядка.

$ Egrep -C 0 '(f | g) ile' check_file $ egrep -C 0 '\ (f \ | g \) ile' check_file

Тут egrep шукає рядок «file», коли мета-символом не екрановані, оскільки це означає значення цих символів
Тут egrep шукає рядок «file», коли мета-символом не екрановані, оскільки це означає значення цих символів. Але, коли ці символи стали екрановані, egrep розглядає їх як частину рядка і шукає повну рядок «(f | g) ile» в файлі.

команда fgrep

Fgrep або Fixed grep або grep -F - це ще одна версія grep, яка необхідна, коли справа доходить до пошуку всього рядка замість регулярного виразу, оскільки воно не розпізнає ні регулярні вирази, ні метасимволу. Для пошуку будь-якого рядка безпосередньо вибирайте цю версія grep.

Fgrep шукає повну рядок і не розпізнає спеціальні символи як частина регулярного виразу, незважаючи на те екрановані символи чи ні.

$ Fgrep -C 0 '(f | g) ile' check_file $ fgrep -C 0 '\ (f \ | g \) ile' check_file

Коли метасимволу були екрановані, fgrep шукала повну рядок «(f | g) ile» в файлі, а коли метасимволу стали екрановані, команда fgrep шукала «\ (f \ | g \) Ile» все символи які є в файлі
Коли метасимволу були екрановані, fgrep шукала повну рядок «(f | g) ile» в файлі, а коли метасимволу стали екрановані, команда fgrep шукала «\ (f \ | g \) Ile» все символи які є в файлі.

висновок

Вище розглянуті відмінності між «grep», «egrep» і «fgrep». Незважаючи на відмінності в наборі використовуваних регулярних виразів і швидкості виконання, параметри командного рядка залишаються однаковими для всіх трьох версій grep.

Спасибі за приділений час на прочитання статті!

Якщо виникли питання, задавайте їх у коментарях.

Підписуйтесь на оновлення нашого блогу і залишайтеся в курсі новин світу інфокомунікацій!

Щоб знати більше і виділятися знаннями серед натовпу IT-шників, записуйтеся на курси Cisco від академії Cisco , курси Linux від Linux Professional Institute на платформі SEDICOMM University .

Курси Cisco і Linux з працевлаштуванням!

Поспішайте подати заявку! Залишилося пару місць. Групи стартують 22 липня, а наступна 19 серпня, 23 вересня, 21 жовтня, 25 листопада, 16 грудня, 20 січня, 24 лютого.

Що Ви отримаєте?

  • Допоможемо стати експертом в мережевому адмініструванні і отримати міжнародні сертифікати Cisco CCNA Routing & Switching або Linux LPI.
  • Пропонуємо перевірену програму і підручник експертів з Cisco Networking Academy і Linux Professional Institute, сертифікованих інструкторів і особистого куратора.
  • Допоможемо з працевлаштуванням і зробити кар'єру. 100% наших випускників працевлаштовуються.

Як проходить навчання?

  • Проводимо вечірні онлайн-лекції на нашій платформі або вчіться очно на базі Київського офісу.
  • Запитаємо у вас про зручний час для практик і підлаштуємося: розуміємо, що часу вчитися мало.
  • Якщо хочете індивідуальний графік - обговоримо і здійснимо.
  • Виставимо чіткі дедлайни для самоорганізації. Особистий куратор буде на зв'язку, щоб відповісти на питання, проконсультувати і мотивувати дотримуватися термінів здачі іспитів.

А ще допоможемо Вам:

  • відредагувати резюме;
  • підготуватися до технічних інтерв'ю;
  • підготуватися до конкурсу на вподобану вакансію;
  • влаштуємо на роботу в Cisco за програмою Cisco Incubator, New Graduate і Experienced. Наші студенти, які вже працюють там: тисніть на # НашіВCisco Вконтакте , # НашіВCisco Facebook .
Щоб вчитися на курсах Cisco CCNA Routing & Switching і Linux LPI, подайте заявку або отримаєте безкоштовну консультацію .

Що Ви отримаєте?
Як проходить навчання?
Новости
Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью