我是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完成此操作?
答案 0 :(得分:1)
不需要sed
,参数扩展就足够了:
el2=${el2/'"ELEMENT":'*'}}'/"$el1}}"}
使用Perl及其JSON库会更安全。
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), '"';
答案 1 :(得分:0)
el2=$(echo "$el2" | sed 's/"ELEMENT[^}]*"/'"$el1/")