首页 > 解决方案 > 使用正则表达式在 Bash 中的引号内添加参数

问题描述

我有一个以这种格式存储在文件中的字符串:

VAR_NAME="Param1=p1 Param2=p2"

我需要编写一个正则表达式,它允许我在引号之间的变量中添加参数,即;

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

我创建了一个似乎对我有用的 RegEx 但是,我不确定如何在我的 bash 脚本中实现它。

如何编辑上述字符串以在 Bash 脚本中的引号之间添加参数?

标签: regexbash

解决方案


您可以使用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"

查看在线演示


推荐阅读