Коли використовувати egrep замість grep?


8

Я зараз готуюсь до оцінки терміналу Linux, я спробував Google і виявив, що більшість ресурсів посилаються на основний "grep", а не на більш потужний "egrep" - ну, це принаймні те, що сказав професор на лекції.

Я завжди працюю з невеликими зразками, тому налаштування продуктивності - це занадто далеко.

Так що в основному я хотів би знати, чи є якісь області, де я повинен перейти на egrep, щоб зробити це кращим чином? Чи безпечно працювати з базовим «грепом», як зараз? чи будуть потенційні ризики?

Вибачте за моє обмежене знання команд оболонки Linux, сторінка man для мене схожа на лабіринт і, чесно кажучи, я не витратив багато часу на розуміння всіх функцій, які надає обидві команди.

Відповіді:


10

egrep = grep -E

Від http://www.opengroup.org/onlinepubs/007908799/xcu/grep.html

"Зіставити з використанням розширених регулярних виразів. Обробіть кожен візерунок, вказаний як ERE, як описано в специфікації XBD, Розширені регулярні вирази. Якщо будь-який весь шаблон ERE відповідає рядку введення, рядок буде збігатися. Нульовий ERE відповідає кожному рядку."

Отже, з egrep ви можете використовувати +, ?, | and ().


@omfgroflmao: в цьому вся різниця? ну, зараз мені комфортно просто зосередитись на навчальних посібниках "grep", не турбуючись про команду "egrep" :) Дякую за пораду!

1
Незалежно від того, називаєте ви це egrepчи grep -Eрозширені регулярні вирази, як правило, роблять складні візерунки коротшими і тому їх легше читати, видаляючи багато ``. Справа не в продуктивності, а є кращим способом у певному сенсі.
Каскабель

5

egrep застарілий. Використовуйте grep -E. Зверніть увагу, що grepзнаходить рядкові шаблони для вас. Якщо ви хочете зробити щось зі своїми рядками після їх знаходження, вам доведеться передати інструмент для обробки струн, наприклад awk(або оболонку). Інструмент, на який ви повинні заглянути, - це те awk, що awkзнаходить рядки для вас так само, як grepі робить обробку для вас, якщо вам потрібно. У цьому зручному інструменті є всі речі grep / sed / тощо.


@ ghostdog74: А-а-а, тому egrep рекомендується не використовувати ... Я думав, що це заміна grep ... Дякую за пораду!

2
Тільки для запису, на багатьох машинах, включаючи міну, egrep є посиланням на grep. Тобто вони насправді є однаково точною командою, але поводяться по-різному залежно від того, як ви їх викликаєте.
MJB
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.