Вы можете сопоставить те строки, которые начинаются с URL=
и получить значение после этого текста, используя только одну команду sed
:
MY_VAR="$(sed -n 's/^URL=//p' ./.env)";
Здесь -n
подавляет вывод строки по умолчанию, s/^URL=//
удаляет URL=
в начале совпавшей строки (^
- начало привязки строки), а p
печатает результат, то есть, что после URL=
.
Если есть возможность быть пробелом до URL=
, вы можете добавить [[:space:]]*
после ^
:
MY_VAR="$(sed -n 's/^[[:space:]]*URL=//p' ./.env)";
@ Sundeep's PCRE-based grep
работает аналогично. grep -oP '^URL=\K.+' ./.env
или grep -oP '^\s*URL=\K.+' ./.env
будут давать те же результаты, что и вышеприведенные команды sed
(в шаблоне PCRE вы можете сопоставлять пробелы с \s
сокращенным классом символов).