sedを使用してini構成ファイルの値を置き換える[重複]
Nov 24 2020
私の設定ファイルは次のようになります:
KEY1=VALUE1
URL=https://drive.google.com/uc?export=download&id=myhash
KEY3=VALUE3
sed
URL値を別の値に置き換えるために使用しようとしています。私は次のようになりました:
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オンラインのドキュメントを読んでください。