2011-05-10 176 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