У меня есть эта строка в моем файле .bash_profile:
if [ -f ~/.bash_profile.tomcat_8.5 ]; then . ~/.bash_profile.tomcat_8.5; fi
И я хотел бы заменить всю строку на
if [ -f ~/.bash_profile.tomcat ]; then . ~/.bash_profile.tomcat; fi
У меня были проблемы со всеми /, затем я узнал, проверяя этот сайт, вы можете использовать любой разделитель с sed, что очень удобно. Но все равно не могу делать то, что хочу.
Вот что я пробовал, используя разделитель +:
sed -i "s+if [ -f ~/.bash_profile.tomcat_8.5 ]; then . ~/.bash_profile.tomcat_8.5; fi+if [ -f ~/.bash_profile.tomcat ]; then . ~/.bash_profile.tomcat; fi+" /tmp/.bash_profile
Я даже пробовал использовать переменные:
Delete='if [ -f ~/.bash_profile.tomcat_8.5 ]; then . ~/.bash_profile.tomcat_8.5; fi'
Add='if [ -f ~/.bash_profile.tomcat ]; then . ~/.bash_profile.tomcat; fi'
sed -i "s+$Delete+$Add+g" /tmp/.bash_profile
Я пробовал использовать {} вокруг переменных , с одинарными кавычками, двойными кавычками. Интересно, это основная проблема c, которую я не могу решить, потому что мне не хватает чего-то простого, или это что-то более глубокое из-за всех c ключевых слов / символов.
Заранее спасибо .