我有一个包含这些行的文件:
战争{ 基本名称 = '我的应用程序' 版本='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
写完然后退出