У меня есть скрипт, который содержит несколько переменных. Один из них - это проприетарный путь MYPATH.
Я хочу сохранить вывод MYPATH, а затем заменить другую переменную SOME_OTHER_PATH с тем же значением.sed: Сохранить вывод и заменить
Текущая запись в myfile.sh
MYPATH="/opt/local/custom/myfiles"
SOME_OTHER_PATH=""
Вывод, который я хочу
MYPATH="/opt/local/custom/myfiles"
SOME_OTHER_PATH="/opt/local/custom/myfiles"
сценарий, который я написал это делает
mylocalpath=`sed -n /^MYPATH/p' myfile.sh | sed -e 's/MYPATH/'`
sed -i -e "s/^SOME_OTHER_PATH/${mylocalpath}" myfile.sh
Есть две проблемы здесь
- Поскольку
${mylocalpath}
содержит «/», SED пытается оценить эти и бросает исключение Я хотел бы связать весь скрипт в SED файл (вместо запуска СЕПГ дважды) и выполнить его как
sed -f sed_file myfile.sh
для задачи № 1, см [этот ответ по поводу вылетающих символов СЕПГ] (http://stackoverflow.com/ а/29613573/2877364) – cxw