У меня есть строка в файле my.cnf
datadir = /var/lib/mysql
Следующее изменяет его на mysql3307, как и ожидалось.
sed -i 's/\/var\/lib\/mysql$/\/var\/lib\/mysql3307/' /etc/my.cnf
Но если у меня есть следующее:
datadir = /var/lib/mysql/
Тогда следующее не меняет путь, как ожидалось:
sed -i 's/\/var\/lib\/mysql\/$/\/var\/lib\/mysql3307/' /etc/my.cnf
Я хочу изменить путь на mysql3307, где datadir - / var / lib / mysql (с / без /)
Обновление:
Вот проблема: Обе вышеуказанные команды работают на одном сервере, и ни одна из них не работает на другом.
Следующее работает, как и ожидалось, но мне нужно добавитьчто $ для обозначения строк, заканчивающихся mysql /
sed -i 's/\/var\/lib\/mysql\//\/var\/lib\/mysql3307/' /etc/my.cnf
Замечено:
Знак ^ работает как и ожидалось, а знак конца строки $ - нет.Любая подсказка?
Обновление:
Кажется, он работает после использования команды "dos2unix".