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

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

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

战争{
    基本名称 = '我的应用程序'
    版本='1.0.2'
}

还有一个变量,例如:

variable=b123

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

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

如何通过脚本实现这个目标bash

答案1

简单的可以sed吗?

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

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

答案2

如果你喜欢 vim,可以这样做:

vim +/version +"norm 2f'i_b123" +x file

这将打开文件并执行三个命令:

  • 转到包含“版本”的第一行

  • 进入普通模式,进入第二个',进入插入模式,插入_b123

  • 写完然后退出

相关内容