这个问题与我在Bash script: Appending text at the last character of specific line of a file中提出的问题有关。
在包含唯一字符串MYVERSION的(文件)行末尾追加变量后,我现在要还原此行的初始内容。
我设法将该行的初始内容存储在一个名为"OLD_MY_VERSION"的变量中,但是当我试图用sed还原该行时
-i“/^MY VERSION=/c\$$OLD_MY_版本myfile.txt
我得到的是"$MYVERSION=0.1"而不是"MYVERSION=0.1"(当然没有引号)。
你知道如何删除额外的字符($)吗?如果我不加上额外的$,就不会在替换中得到"OLD_MY_VERSION"变量的内容,而只得到"$OLD_MY_VERSION"字符串。
谢谢。

最佳答案

我觉得你应该试试这个:

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

这将用s的内容替换(MYVERSION)以$OLD_MY_VERSION开头的整行。
您也可以使用c命令,但不需要命令中的\$
sed -i "/^MYVERSION/ c$OLD_MY_VERSION" myfile.txt

关于linux - Bash脚本:编辑一些文件后还原文件中的特定文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5949094/

10-13 07:25