如何修改单引号内的文本?

sga*_*gel 2 bash shell-script text-processing

我有一个包含这些行的文件:

战争{
    baseName = '我的应用程序'
    版本 = '1.0.2'
}

和一个变量,如:

variable=b123
Run Code Online (Sandbox Code Playgroud)

我想编辑将 $variable 值附加到版本号的文件,因此结果将是:

战争{
    baseName = '我的应用程序'
    版本 = '1.0.2_b123'
}

如何用bash脚本实现这个目标?

ilk*_*chu 6

一个简单的会sed做吗?

$ var=_b123
$ sed -Ee "/version/s/'(.*)'/'\1$var'/" file 
war {
    baseName = 'myApp'
    version = '1.0.2_b123'
}
Run Code Online (Sandbox Code Playgroud)

/version/检查该行是否包含该字符串,如果是,我们s用相同的字符串((...)捕获、\1恢复)加上变量中的文本替换单引号内的字符串。这里的引用不是问题,因为我们需要的所有内容在 double 内都是安全的-引号。)