Показать страницуИстория страницыСсылки сюдаCopy this pageExport to MarkdownODT преобразованиеНаверх Вы загрузили старую версию документа! Сохранив её, вы создадите новую текущую версию с этим содержимым. Медиафайлы{{tag>shell utils bash}} ====== Sed ====== ===== Параметры ===== * -i - Не обращать внимание на регистр * -e - Использовать регулярные выражения ===== Документация ===== ===== Замена в файле ===== * sed -e 's/oldstuff/newstuff/g' inputFileName > outputFileName <note important>Нельзя указывать одинаковый исходящий и принимающий файл. Врезультате его длина будет = 0</note> ===== Замена без временного файла ===== * sed -i 's/abc/def/' file * sed -e 's/abc/def/' file ===== Замена в потоке ===== * 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' ===== Примеры использоваеия ===== $ sed "s/mytext/$var/" $ sed 's/mytext/'$var'/' $ sed 's/mytext/'$var\/ $ sed 's/mytext/'$var/ $ sed s/mytext/$var/ Рекурсивное изменение в файлах текущей директории $ find ./ -type f -exec sed -i -e 's/apple/orange/g' {} \; **Как убрать переносы строк?** <code bash> $ sed ':a; /$/N; s/\n//; ta' # 1) метка 2) добавляем к текущей строке сдедующую (через \n) 3) удаляем разделитель 3) если команда s/// что-то сделала - переходим на метку. </code> ===== Ссылки ===== * http://rus-linux.net/MyLDP/consol/sed.html * http://citforum.ru/operating_systems/articles/tut_6.shtml * http://ant0.ru/sed1line.html (Рецепты) СохранитьПросмотрРазличияОтменить Сводка изменений Примечание: редактируя эту страницу, вы соглашаетесь на использование своего вклада на условиях следующей лицензии: CC0 1.0 Universal