2011-05-10 13 views
0

この質問は、Bash script: Appending text at the last character of specific line of a fileで尋ねたものとリンクしています。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"文字列のみが取得されます。

ありがとうございます。

答えて

1

私はあなたがこれを試してみてくださいと思う:

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

これは(s$OLD_MY_VERSIONの内容とMYVERSIONで始まる行全体を代用します。

またcコマンドを使用することができますが、あなたはあなたのコマンドを持っている\$を必要としない:

sed -i "/^MYVERSION/ c$OLD_MY_VERSION" myfile.txt 
関連する問題