sed匹配第一个单词替换完整行

时间:2017-03-16 10:43:52

标签: sed

我知道这应该是直截了当但我被困住了,对不起。

我有两个文件都包含相同的参数但值不同。我正在尝试一次读取一个文件行,获取参数名称,使用它在第二个文件中匹配,并用文件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 

1 个答案:

答案 0 :(得分:0)

如果您希望将这些变量替换为其值,则需要在双引号内使用sed命令。你有单引号,所以sed实际上是在寻找带有美元符号的字符串来替换字符串'$ line',而不是你的shell在$ line变量中有什么。

简而言之,sed没有看到你想要的价值观。切换到双引号。