2

string=value に一致する値を置き換える必要があるため、これが私が思いついたものです。

echo "some string=oldvalue" | sed 's/\(some string\=\)(.*)/\1newvalue/'

それはうまくいきます、同じことを達成するためのより良い、より短い方法があるのだろうかと思います

ティア

4

2 に答える 2

2

some_stringが定数値の場合は、次を使用してください。

sed 's/some string=.*/some string=newvalue/'

次のトランスクリプトのように:

pax> echo "some string=oldvalue" | sed 's/some string=.*/some string=newvalue/'
some string=newvalue

ただし、他のキーを取得しないように、開始マーカーの使用を検討することをお勧めします。

sed 's/^some string=.*/some string=newvalue/'

行の残りの部分(たとえば、スペースの後)を保持する場合は、次を使用します。

pax> echo "string=old # comment" | sed 's/string=[^ ]*/string=newvalue/'
string=newvalue # comment

=これは、後の項目をスペース以外の文字に制限することで機能します。

于 2012-04-10T06:16:15.820 に答える
1

値に=s を含めることができない場合は、実行する方が短くなります。

sed 's/=.*/=NEW VALUE/'
于 2012-04-10T06:18:13.420 に答える