Работа с текстовыми файлами с помощью команд (sed, grep, awk)
Команды sed
, grep
и awk
являются мощными инструментами для работы с текстовыми файлами в Linux/Unix системах. Каждая из них имеет свои особенности и предназначение:
Команда grep
grep
Команда grep
используется для поиска строк, которые соответствуют заданному шаблону. Она позволяет быстро найти информацию в текстовых файлах.
Основной синтаксис
Примеры использования
Поиск строк, содержащих шаблон:
Ищет строки, содержащие
pattern
вfilename.txt
.Поиск без учёта регистра:
Использует регистронезависимый поиск.
Поиск и вывод номера строки:
Показывает номера строк вместе с совпадениями.
Поиск строк, не содержащих шаблон:
Выводит все строки, которые не содержат
pattern
.Поиск шаблона в нескольких файлах:
Ищет
pattern
во всех текстовых файлах в текущем каталоге.Поиск шаблона с выводом контекста:
Показывает 3 строки до и после строки с
pattern
.Поиск и вывод только уникальных строк:
-o
выводит только совпадения шаблона.
Команда sed
sed
Команда sed
(stream editor) предназначена для выполнения различных текстовых операций, таких как замена, удаление, вставка строк и т.д.
Основной синтаксис
Примеры использования
Замена текста:
Заменяет все вхождения
old_text
наnew_text
вfilename.txt
. Флагg
указывает на глобальную замену.Замена текста только в определённых строках:
Заменяет
old_text
наnew_text
только во второй строке.Удаление строк, содержащих шаблон:
Удаляет строки, содержащие
pattern
.Вставка строки перед указанной строкой:
Вставляет "New line of text" перед второй строкой.
Добавление строки после указанной строки:
Добавляет "New line of text" после второй строки.
Удаление пустых строк:
Удаляет все пустые строки.
Замена текста и запись в новый файл:
Записывает результат замены в новый файл
newfile.txt
.
Команда awk
awk
Команда awk
— это мощный текстовый процессор, который используется для обработки и анализа текстовых данных, особенно структурированных данных.
Основной синтаксис
Примеры использования
Вывод определённых столбцов:
Выводит первый и третий столбцы из
filename.txt
. По умолчанию столбцы разделены пробелами или табуляцией.Вывод строк, соответствующих шаблону:
Выводит строки, содержащие
pattern
.Подсчёт количества строк:
NR
— переменная, содержащая количество строк. Выводит общее количество строк в файле.Суммирование значений в столбце:
Суммирует значения во втором столбце и выводит результат.
Форматированный вывод данных:
Форматирует вывод с использованием спецификаторов
%-10s
и%-3s
для имени и возраста соответственно.Фильтрация строк по значению в столбце:
Выводит строки, где значение в третьем столбце больше 100.
Использование разделителей:
Использует запятую
,
в качестве разделителя полей для обработки CSV файлов.
Заключение
Команды sed
, grep
и awk
позволяют эффективно выполнять различные операции с текстовыми файлами. grep
удобен для поиска шаблонов, sed
для выполнения редакторских операций, а awk
для обработки и анализа структурированных данных. Знание этих инструментов значительно упрощает работу с текстовыми данными в командной строке.
Last updated