Более надежным способом является использование sed для синтаксического анализа полного значения до тех пор, пока не будет найдено слово, содержащее следующее =. Таким образом, он будет работать со значением любого размера (, например. если у вас есть шрифт с одним словом или тремя словами ).
sed 's/.*OS=\([^=]*\).*/\1/;s/ [^ ]*$//'
Первый блок захватывает все до OS=
, второй блок в группе захвата (, обозначенный \(\)
с ), соответствует следующему =
и может упоминаться в замене как \1
. Следующая замена избавляет от последнего слова, которое является фрагментом следующего присваивания.
Обратите внимание, :^
в []
означает исключение соответствия символу в этом случае всего, что не является знаком =
.
У меня сработало следующее от Bib:
Удалить сервер марии:
/etc/my.cnf
и/var/lib/mysql
Это сотрет все старые базы данных, которые были там раньше. Кажется, что не удалось обновить один или несколько, которые все еще были там. При необходимости переместите /var/lib/mysql
в другое место и переустановите.
После этого я смог запустить MariaDB. Похоже, моя проблема заключалась в том, что строка datadir в файле my.cnf
не запускалась.