Использование регулярного выражения для добавления параметров в кавычки в Bash - PullRequest
1 голос
/ 19 февраля 2020

У меня есть строка, хранящаяся в файле в следующем формате:

VAR_NAME="Param1=p1 Param2=p2"

Мне нужно написать регулярное выражение, которое позволит мне добавлять параметры в переменную между кавычками т.е.

VAR_NAME="Param1=p1 Param2=p2 Param3=P3"

Я создал RegEx, который, кажется, работает для меня здесь , однако я не уверен, как внедрить это в мой bash script.

Как мне отредактировать приведенную выше строку, чтобы добавить параметры между кавычками в пределах Bash сценария?

1 Ответ

1 голос
/ 19 февраля 2020

Вы можете использовать sed:

text='VAR_NAME="Param1=p1 Param2=p2"'
sed 's,VAR_NAME="\([^"]*\)",GRUB_CMDLINE_LINUX="\1 Param3=p3",' <<< "$text"
# => GRUB_CMDLINE_LINUX="Param1=p1 Param2=p2 Param3=p3"

# Or, assign the result to a variable:
result="$(sed 's,VAR_NAME="\([^"]*\)",GRUB_CMDLINE_LINUX="\1 Param3=p3",' <<< "$text")"
echo "$result"
# => GRUB_CMDLINE_LINUX="Param1=p1 Param2=p2 Param3=p3"

См. онлайн демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...