Я решил эту проблему, отредактировав и добавив адрес DNS в файл ifcfg-enp0s3. Я добавил адрес 8.8.8.8 для DNS.
Если разделитель может появляться внутри полей, то на самом деле это не разделитель. Вместо этого я бы использовал что-то вроде
KEY=$(sed -n '/^key *=/ { s/^key *= *//; p }' file.conf)
: это ищет строки, начинающиеся с ключа
, за которым следует любое количество пробелов и знак =
, удаляет начало строки и печатает его . Как указывает dave_thompson_085 , p
может быть обусловлено s
:
KEY=$(sed -n 's/^key *= *//p' file.conf)
Эквивалентным AWK является
KEY=$(awk '/^key *=/ { sub("^key *= *", ""); print }' file.conf)
, и можно использовать тот же трюк комбинирования:
KEY=$(awk 'sub("^key *= *", "")' file.conf)
Еще один вариант, на этот раз с grep:
KEY=$(grep -Po '^key\s*=\s*\K.*' f.conf )
Вы можете получить то, что хотите, используя эту команду:
KEY=$(awk -F 'key *= *' '{print $2}' f.conf)
просто уберите значение первого столбца
KEY=$(awk -F= '{$1="";sub("=","")}1' OFS="=" file.conf)