2011-05-10 139 views
0

此問題與我在Bash script: Appending text at the last character of specific line of a file中提出的問題相關聯。Bash腳本:在文件編輯後恢復文件中的特定文本

在包含唯一字符串MYVERSION的(文件行)行末尾附加一個變量後,我現在要恢復此行的初始內容。

我設法線的初始內容存儲在一個名爲"OLD_MY_VERSION"變量,但是當我試圖恢復與sed的

-i「/^MYVERSION = 6/C \ $$ OLD_MY_VERSION MYFILE行.TXT

我得到的"$MYVERSION=0.1"代替"MYVERSION=0.1"(當然沒有引號)。

如何刪除多餘的字符任何想法($)?如果我不把額外的$,我是沒有得到"OLD_MY_VERSION"變量的內容,而只是"$OLD_MY_VERSION"字符串。

非常感謝。

回答

1

我想你應該試試這個:

sed -i "s/^MYVERSION=.*$/$OLD_MY_VERSION/" myfile.txt 

這將取代(s)與MYVERSION開頭的$OLD_MY_VERSION內容的整條生產線。

你也可以使用c命令,但你並不需要你在你的命令有\$

sed -i "/^MYVERSION/ c$OLD_MY_VERSION" myfile.txt