Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия | |||
— | sed [2025/07/06 12:39] (текущий) – внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Редактор sed ====== | ||
+ | ~~Title: Как использовать sed: Практические примеры для начинающих ~~ | ||
+ | {{htmlmetatags> | ||
+ | metatag-description=(Практические примеры и легкие для понимания инструкции по работе с редактором sed.) | ||
+ | }} | ||
+ | {{ :: | ||
+ | * [[RegExp]] | ||
+ | * [[utility_os_nix# | ||
+ | |||
+ | **sed** (Stream EDitor) - потоковый неинтерактивный текстовый редактор (а также язык программирования), | ||
+ | |||
+ | sed получает входной поток (обычно файл) построчно, | ||
+ | |||
+ | sed вызывается следующим образом: | ||
+ | < | ||
+ | sed options file | ||
+ | </ | ||
+ | Где опции - это указание на то, как редактировать файл и путь к файлe, который необходимо отредактировать. | ||
+ | |||
+ | **Модификаторы**: | ||
+ | * **g**. sed по умолчанию заменяет только первое найденное слово. Модификатор g указывает заменять все найденные совпадения в строке. | ||
+ | * **i**. Установить регистронезависимый режим. | ||
+ | |||
+ | ===== Примеры использования редактора sed ===== | ||
+ | Эти примеры покрывают основные задачи, | ||
+ | ==== Редактирование в файле (in-place) ==== | ||
+ | Заменить текст в файле, сохраняя исходный файл с расширением .bak | ||
+ | |||
+ | <file bash> | ||
+ | sed -i.bak ' | ||
+ | или так | ||
+ | cat lost_cdr.sql | sed ' | ||
+ | </ | ||
+ | Прямая замена текста в файле без сохранения исходного файла | ||
+ | <file bash> | ||
+ | sed -i ' | ||
+ | </ | ||
+ | |||
+ | Замена при помощи переменных. Обратите внимание на ключ -i, он указывает изменить данные в файле [[nginx_simple_example|nginx.conf]], | ||
+ | <file bash> | ||
+ | export OLD_IP=12.1.1.1 | ||
+ | export NEW_IP=122.33.44.55 | ||
+ | sed -i " | ||
+ | </ | ||
+ | ==== Вывод определенных строк ==== | ||
+ | Вывести третью строку из файла .bash_history | ||
+ | <file bash> | ||
+ | sed -ne 3p .bash_history | ||
+ | OR | ||
+ | sed -n ' | ||
+ | </ | ||
+ | Вывести только строки, | ||
+ | <file bash> | ||
+ | sed -n '/ | ||
+ | Например, | ||
+ | sed -n '/ | ||
+ | </ | ||
+ | Вывести строки с 5 по 10 | ||
+ | <file bash> | ||
+ | sed -n ' | ||
+ | </ | ||
+ | Взять из файла с первой по восьмую строки и из них вывести первые пять | ||
+ | <file bash> | ||
+ | sed -n ' | ||
+ | </ | ||
+ | ==== Вставка и добавление текста ==== | ||
+ | Вставить строку перед каждой строкой, | ||
+ | <file bash> | ||
+ | sed '/ | ||
+ | </ | ||
+ | Добавить строку после каждой строки, | ||
+ | <file bash> | ||
+ | sed '/ | ||
+ | </ | ||
+ | ==== Удаление строк ==== | ||
+ | Удалить пустые строки из файла | ||
+ | <file bash> | ||
+ | sed '/ | ||
+ | </ | ||
+ | Удалить пустые строки и комментарии в файле | ||
+ | <file bash> | ||
+ | sed -i.bak '/ *#/d; /^$/d' filename | ||
+ | </ | ||
+ | Удалить первую строку файла | ||
+ | <file bash> | ||
+ | sed ' | ||
+ | </ | ||
+ | Удалить последнюю строку файла | ||
+ | <file bash> | ||
+ | sed ' | ||
+ | </ | ||
+ | Удалить строки с 10 по 20 | ||
+ | <file bash> | ||
+ | sed ' | ||
+ | </ | ||
+ | Удалить пустые символы в конце каждой строки | ||
+ | <file bash> | ||
+ | sed -e 's/ *$//' filename | ||
+ | </ | ||
+ | Удалить строку " | ||
+ | <file bash> | ||
+ | sed -e ' | ||
+ | </ | ||
+ | ==== Замена текста ==== | ||
+ | Заменить первое вхождение " | ||
+ | <file bash> | ||
+ | sed ' | ||
+ | </ | ||
+ | Заменить все вхождения " | ||
+ | <file bash> | ||
+ | sed ' | ||
+ | </ | ||
+ | Заменить последовательность из любого количества нулей одним нулём | ||
+ | <file bash> | ||
+ | sed -e ' | ||
+ | </ | ||
+ | |||
+ | ===== Пример: | ||
+ | Вырезать кусок текста из лог- файла. Лог имеет метки времени. Зная метку начала и конца нужного нам куска лога, мы можем при помощи утилиты [[grep|grep]] найти номера строк начала и конца. И при помощи sed вырезать нужный нам кусок лога. | ||
+ | <file bash cutlog.sh> | ||
+ | #!/bin/sh | ||
+ | |||
+ | FILE=" | ||
+ | START=`grep -n ' | ||
+ | END=`grep -n ' | ||
+ | |||
+ | sed -n " | ||
+ | </ |
📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.
📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Nginx простые примеры конфигурации
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах
7 Самых Популярных Обзоров
- Хостинг для Python-скриптов и приложений
- ТОП 4 лучших антидетект браузеров (Бесплатные & Платные)
- Подборка купонов (промокоды) на хостинг, антидетект браузеры
- Обзор THE.Hosting (PQ Hosting): надежный хостинг с профессиональной поддержкой
- Хостинг в России
- Хостинг в Европе
- Обзор браузера Dolphin {anty} для мультиаккаунтинга