sedの "{"と "}"の間のアドレススペースを指定していますので、最初の "Acer"だけを "TTTT"に置き換えてください。 2番目は期待されていません。この問題を解決するにはどうすればよいですか? 私はUbuntu 15.10でテストを行い、sedのバージョンはsed(GNU sed)4.2.2です。sed - "{"と "}"の間のアドレススペース
ありがとうございます。次のように
$ echo "
[
{
\"manufacturer\": \"Acer\",
\"regularPrice\": 165.99,
},
[
\"manufacturer\": \"Acer\",
\"regularPrice\": 165.99,
],
{
\"manufacturer\": \"Acer\",
\"regularPrice\": 165.99,
}
]
" | sed "/{/,/},/ {s/\"Acer\"/\"TTTT\"/}"
その結果
は以下のとおりです。[
{
"manufacturer": "TTTT",
"regularPrice": 165.99,
},
[
"manufacturer": "Acer",
"regularPrice": 165.99,
],
{
"manufacturer": "TTTT",
"regularPrice": 165.99,
}
]
アドレスの2番目のパターンは、「これが見つかったら停止」を意味します。それが「見つからなければ進まない」という意味ではありません。 –