我知道这应该是直截了当但我被困住了,对不起。
我有两个文件都包含相同的参数但值不同。我正在尝试一次读取一个文件行,获取参数名称,使用它在第二个文件中匹配,并用文件1中的整行替换。
e.g。 rw_2.core.fvbCore.Param.isEnable 1(FVB_Params) 变 rw_2.core.fvbCore.Param.isEnable true(FVB_Boolean)
这些线的长度并不总是相同,但我总是想要替换整条线。
我的代码如下,但它没有进行替换,我无法理解为什么不。
while read line; do
ParamName=`awk '{print $1}'`
sed -i 's/$ParamName.*/$line/g' FVB_Params.txt
done < FVB_Boolean.txt
答案 0 :(得分:0)
如果您希望将这些变量替换为其值,则需要在双引号内使用sed命令。你有单引号,所以sed实际上是在寻找带有美元符号的字符串来替换字符串'$ line',而不是你的shell在$ line变量中有什么。
简而言之,sed没有看到你想要的价值观。切换到双引号。