-1

私はsedが初めてで、文字列操作をしたいと思っています。私は文字列を持っています

 el2="action:json:{"command":"submit","sessionId":1,"data":{"ELEMENT":":wdc:dscdcd"}}"

変数 el1="ELEMENT":":wdc:1372054342282" があります。新しいel2になりたい:

 el2="action:json:{"command":"submit","sessionId":1,"data":{"ELEMENT":":wdc:1372054342282"}}"

どうすればsedでこれを達成できますか?

4

2 に答える 2

1

必要ありませんsed。パラメータ展開で十分です:

el2=${el2/'"ELEMENT":'*'}}'/"$el1}}"}

ただし、 JSONライブラリで Perl を使用する方が安全です。

use JSON;
$s = '"action:json:{"command":"submit","sessionId":1,"data":{"ELEMENT":":wdc:dscdcd"}}"';
$s =~ s/"action:json://;
$s =~ s/"$//;
$j = decode_json($s);
$j->{data}{ELEMENT} = ':wdc:1372054342282';
print '"action:json:', encode_json($j), '"';
于 2013-07-29T21:41:30.430 に答える
0
el2=$(echo "$el2" | sed 's/"ELEMENT[^}]*"/'"$el1/")
于 2013-07-29T21:41:37.887 に答える