[英]Bash script: Restore specific text in a file after some file editing
這個問題與我在Bash腳本中提出的問題有關:在文件特定行的最后一個字符后附加文本 。
在包含唯一字符串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"
字符串。
非常感謝。
我認為您應該嘗試這樣做:
sed -i "s/^MYVERSION=.*$/$OLD_MY_VERSION/" myfile.txt
這將取代( s
)開頭的整條生產線MYVERSION
與內容$OLD_MY_VERSION
。
您也可以使用c
命令,但不需要命令中的\\$
:
sed -i "/^MYVERSION/ c$OLD_MY_VERSION" myfile.txt
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.