Найти в Дзене
Помощник сисадмина

В чем разница между командами GREP, AWK и SED?🤨

Grep, awk и sed – это мощные инструменты в Unix/Linux, применяемые для работы с текстом. У каждой утилиты свои особенности, хотя иногда их функции пересекаются. grep – Ищет строки, соответствующие заданному шаблону (обычно регулярному выражению). Выводит найденные строки или их части, фильтруя текст. Примеры: grep "error" log.txt (Поиск строк с "error"). grep -i "warning" log.txt (Игнорировать регистр). sed – Потоковый редактор, заменяет, удаляет и изменяет текст на основе шаблонов. Работает построчно, может обрабатывать многострочные паттерны, быстро редактируя файлы. Примеры: sed 's/apple/orange/' file.txt (Заменить "apple" на "orange"). sed '/DEBUG/d' file.txt (Удалить строки с "DEBUG"). awk – Анализирует и обрабатывает текст, извлекая данные, обрабатывая поля и манипулируя текстом. Выполняет арифметические операции, фильтрацию и форматирование, используя колонки для обработки данных. Примеры: awk '{print 1, 3}' file.txt (Вывести 1-й и 3-й столбцы). awk '$3 > 50 {print

Grep, awk и sed – это мощные инструменты в Unix/Linux, применяемые для работы с текстом. У каждой утилиты свои особенности, хотя иногда их функции пересекаются.

grep – Ищет строки, соответствующие заданному шаблону (обычно регулярному выражению). Выводит найденные строки или их части, фильтруя текст.

Примеры:

grep "error" log.txt (Поиск строк с "error").

grep -i "warning" log.txt (Игнорировать регистр).

sed – Потоковый редактор, заменяет, удаляет и изменяет текст на основе шаблонов. Работает построчно, может обрабатывать многострочные паттерны, быстро редактируя файлы.

Примеры:

sed 's/apple/orange/' file.txt (Заменить "apple" на "orange").

sed '/DEBUG/d' file.txt (Удалить строки с "DEBUG").

awk – Анализирует и обрабатывает текст, извлекая данные, обрабатывая поля и манипулируя текстом. Выполняет арифметические операции, фильтрацию и форматирование, используя колонки для обработки данных.

Примеры:

awk '{print 1, 3}' file.txt (Вывести 1-й и 3-й столбцы).

awk '$3 > 50 {print 1, 3}' file.txt (Вывести строки, где 3-й столбец > 50).

ВЫВОД

Grep ищет строки по шаблону, sed заменяет текст, awk работает с колонками и данными.

Если нужно найти строку, используйте grep;

заменить текст – sed;

обработать данные – awk.

Утилиты можно использовать совместно для сложных задач.