这个问题与我在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/