sedを使用してini構成ファイルの値を置き換える[重複]

Nov 24 2020

私の設定ファイルは次のようになります:

KEY1=VALUE1
URL=https://drive.google.com/uc?export=download&id=myhash
KEY3=VALUE3

sedURL値を別の値に置き換えるために使用しようとしています。私は次のようになりました:

sed -i.bak 's@URL=.*@URL=https://drive.google.com/uc?export=download&id=mynewhash@g' file.txt

しかし、私が得ているように、それはうまくいかないようです:

URL=https://drive.google.com/uc?export=downloadURL=https://drive.google.com/uc?export=download&id=mynewhash=myhash

何が足りないのですか?ありがとう

回答

axiac Nov 24 2020 at 00:14

&sコマンドに提供される置換文字列の特殊文字ですsed。これは、regex検索に使用される全体に一致する文字列を表しURL=.*ます(この例では)。

自分自身を表すには、次のようにエスケープする必要があります\

sed -i.bak 's@URL=.*@URL=https://drive.google.com/uc?export=download\&id=mynewhash@g' file.txt

man sedターミナルに入力してドキュメントを読むか、sedオンラインのドキュメントを読んでください。