Я пытаюсь заменить строку в файле и сталкиваюсь с проблемами.
Исходный файл:
export PS1='\h:\w\$ '
Команда, которую я выполняю:
perl -pi -e 's~PS1.*~PS1="\n\[\e[32;1m\][\[\e[37;1m\]\u@\h:\[\e[37;1m\]\w\[\e[32;1m\]]\\$ \[\e[0m\]~g' ~/.bashrc
Сообщение об ошибке:
syntax error at -e line 1, near "e["
Execution of -e aborted due to compilation errors.
Я также пробовал sed:
sed -i 's~PS1.*~PS1="\n\[\e[32;1m\][\[\e[37;1m\]\u@\h:\[\e[37;1m\]\w\[\e[32;1m\]]\\$ \[\e[0m\]~g' ~/.bashrc
Результат с Sed:
export PS1="
[e[32;1m][[e[37;1m]@h:[e[37;1m]w[e[32;1m]]\$ [e[0m]
Файл ожидаемого результата:
export PS1="\n\[\e[32;1m\][\[\e[37;1m\]\u@\h:\[\e[37;1m\]\w\[\e[32;1m\]]\\$ \[\e[0m\]"
Конечный результат
Это не имеет ничего общего с вопросом, кроме как показать людям, как PS1 будет выглядеть при правильной работе