簡體   English   中英

Bash腳本:編輯一些文件后,還原文件中的特定文本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM