Использование переменных из bash-скрипта в sed
Вроде невелика проблема, а вопросы вызывает. Понятно, что вот так работать не будет:
VAR1="Nado naiti"
VAR2="Nado zamenit'"
sed 's/$VAR1/$VAR2'
т.к. одинарные кавычки в команде
sed
все закэранируют, и sed
будет искать черти что и с боку бантик.1. Поменять одинарные кавычки на двойные.
2. Поменять sed'овский разделитель слэш (
/
) на что-нибудь другое, например на знак %
(Уникальность программы sed в том, что она позволяет использовать любой разделитель, например знак подчеркивания)VAR1="Nado naiti"
VAR2="Nado zamenit'"
sed "s%$VAR1%$VAR2"
Добавление строки в начало файла из предыдущей заметки. Строка содержится в переменной
$FIRSTSTRING
:sed -i -e "1 s%^%$FIRSTSTRING\n%" file.txt
Замена строки, начинающейся с любого количества пробелов и/или со строки из переменной
$START
на строку, содержащуюся в переменной $REPLACE
:sed -i "s%^ *$START.*%$REPLACE%" file.txt
Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2019/08/15/ispo