SED
sed (от англ. Stream EDitor) — потоковый текстовый редактор (а также язык программирования), применяющий различные предопределённые текстовые преобразования к последовательному потоку текстовых данных.
Первоначально был написан как
sed получает входной поток (обычно файл) построчно, редактирует каждую строку согласно правилам, определённым в
sed часто называют неинтерактивным текстовым редактором. Он отличается от обычных текстовых редакторов «инвертированностью» по отношению к тексту и набору команд редактирования. Обычные текстовые редакторы вначале загружают весь текст документа, а затем применяют к нему команды по одной, в то время как sed вначале загружает в себя набор команд, а затем применяет весь набор команд к каждой строчке текста. Так как одновременно в памяти находится только одна строка, sed может обработать произвольно большие текстовые файлы.
Следующий пример демонстрирует типичное использование sed:
sed -e 's/oldstuff/newstuff/g' inputFileName > outputFileName
Здесь s — замена; g — глобально, что означает «все вхождения искомого значения». После первого прямого слеша расположено регулярное выражение для поиска, после второго — выражение для замены. Однако следует помнить, что помимо слеша может использоваться и другой символ. Так, например, выражения
echo 123123| sed 's/1/5/g'
echo 123123| sed 's%1%5%g'
echo 123123| sed 's$1$5$g'
echo 123123| sed 's|1|5|g'
полностью равнозначны.
Регулярные выражения-метасимволов :
- ^ Соответствует началу строки
- $ Соответствует концу строки
- . Соответствует любому единственному символу
- * Соответствует нулю или более повторений предшествующего символа
- [ ] Соответствуют одному любому из символов, включённых в квадратные скобки между [ и ]
- [^ ] Соответствуют одному любому из символов, не включённых в квадратные скобки между [^ и ]
- \буква соответствуют одному любому символу из определённого класса символов, в частности \s — это любой пробельный символ.