Bash脚本:在文件编辑后恢复文件中的特定文本

时间:2011-05-10 11:11:29

标签: linux bash append

这个问题与我在Bash script: Appending text at the last character of specific line of a file中提出的问题有关。

在包含唯一字符串MYVERSION的(文件)行的末尾附加变量后,我现在想要恢复该行的初始内容。

我设法将该行的初始内容存储在名为"OLD_MY_VERSION"的变量中,但是当我尝试使用sed恢复该行时

  

-i“/ ^ MYVERSION = / c \ $$ OLD_MY_VERSION myfile.txt

我收到"$MYVERSION=0.1"而不是"MYVERSION=0.1"(当然没有引号)。

有关如何删除额外字符($)的任何想法?如果我没有加上额外的$,我没有在替换中获得"OLD_MY_VERSION"变量的内容,而只是"$OLD_MY_VERSION"字符串。

非常感谢。

1 个答案:

答案 0 :(得分: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