这个问题与我在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"
字符串。
非常感谢。
答案 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