2017-03-16 81 views
0

我知道這應該是直接的,但我卡住了,對不起。sed匹配第一個詞替換全行

我有兩個文件都包含相同的參數,但具有不同的值。我試圖一次讀取一個文件行,獲取參數名稱,使用它在第二個文件中匹配,並用文件1中的行替換整行。

例如, rw_2.core.fvbCore.Param.isEnable 1(FVB_Params) 成爲 rw_2.core.fvbCore.Param.isEnable真(FVB_Boolean)

行不會總是相同的長度,但我一直想更換整條生產線。

我有的代碼如下,但它不會替換,我不能解決爲什麼不。

while read line; do   
    ParamName=`awk '{print $1}'` 
    sed -i 's/$ParamName.*/$line/g' FVB_Params.txt 
done < FVB_Boolean.txt 
+0

'。^''?這應該如何理解?你說在行開始之前有一個角色? – hek2mgl

+0

是的,對不起,這是一個錯字,不能解決如何編輯這個。忽略$ ParamName前的字符 – RobynP

+0

編輯更正 – RobynP

回答

0

如果您希望將這些變量替換爲其值,則需要使用雙引號內的sed命令。你有單引號,所以sed實際上是在尋找帶有美元符號的字符串來替換字符串'$ line',而不是你的shell在$ line變量中的值。

總之,sed沒有看到你想要的值。切換到雙引號。