Редактор sed
sed (Stream EDitor) - потоковый неинтерактивный текстовый редактор (а также язык программирования), применяющий различные предопределённые текстовые преобразования к последовательному потоку текстовых данных.
sed получает входной поток (обычно файл) построчно, редактирует каждую строку согласно правилам, определённым в sed- скрипте с использованием простого языка sed, и затем выводит результат в выходной поток. sed отличается от обычных текстовых редакторов "инвертированностью" по отношению к тексту и набору команд редактирования. Обычные текстовые редакторы вначале загружают весь текст документа, а затем применяют к нему команды по одной, в то время как sed вначале загружает в себя набор команд, а затем применяет весь набор команд к каждой строчке текста. Так как одновременно в памяти находится только одна строка, sed может обработать произвольно большие текстовые файлы.
sed вызывается следующим образом:
sed options file
Где опции - это указание на то, как редактировать файл и путь к файлe, который необходимо отредактировать.
Модификаторы:
- g. sed по умолчанию заменяет только первое найденное слово. Модификатор g указывает заменять все найденные совпадения в строке.
- i. Установить регистронезависимый режим.
Примеры использования редактора sed
- Замена при помощи переменных. Обратите внимание на ключ -i, он указывает изменить данные в файле
nginx.conf, если ключ -i убрать sed откроет файл,сделает замену и выведет измененную версию на экран (nginx.conf не будет изменен).
export OLD_IP=12.1.1.1 export NEW_IP=122.33.44.55 sed -i "s/$OLD_IP/$NEW_IP/" /etc/nginx/nginx.conf
- Вывести третью строку из файла .bash_history
sed -ne 3p .bash_history OR sed -n '3p;3q' .bash_history
- sed 's/stringa1/stringa2/g' example.txt в файле example.txt заменить "string1" на "string2", результат вывести на стандартное устройство вывода. Например
cat lost_cdr.sql | sed 's/DEFAULT, 2/DEFAULT, 1/g' > lost_cdr_nas1.sql
- sed '/^$/d' example.txt удалить пустые строки из файла example.txt
- sed '/ *#/d; /^$/d' example.txt удалить пустые строки и комментарии из файла example.txt
- sed -e '1d' result.txt удалить первую строку из файла example.txt
- sed -n '/string1/p' отобразить только строки содержашие "string1"
- sed -e 's/ *$' example.txt удалить пустые символы в в конце каждой строки * <file bash> sed -e 's/string1g' example.txt
</file> удалить строку "string1" из текста не изменяя всего остального
- sed -n '1,8p;5q' example.txt взять из файла с первой по восьмую строки и из них вывести первые пять
- sed -e 's/0*/0/g' example.txt заменить последовательность из любого количества нулей одним нулём
Пример: вырезать кусок текста из лог- файла
Вырезать кусок текста из лог- файла. Лог имеет метки времени. Зная метку начала и конца нужного нам куска лога, мы можем при помощи утилиты Использование grep, egrep найти номера строк начала и конца. И при помощи sed вырезать нужный нам кусок лога.
- cutlog.sh
#!/bin/sh FILE="path to file" START=`grep -n '2014-11-29 04:51:23.253790' "$FILE" | cut -f1 -d:` END=`grep -n '2014-11-29 04:51:23.255933' "$FILE" | cut -f1 -d:` sed -n "$START,$END p" $FILE

Friendhosting - Разумные цены на хостинг
VDS/VPS сервер от 3.49€ в месяц. Много ресурсов. Высокая надежность. Гибкое управление. Удобная оплата. Настройка под вас!
friendhosting.net
Антидетект браузер Dolphin{anty} бесплатно до 10 профилей
Dolphin разработан для работы с такими сложными ресурсов, как Google, Facebook и Coinlist.
Английский для IT‑специалистов по Skype
Персональные занятия по разумным ценам. 80% разговорной практики. Персональный график!
skyeng.ru