Tôi chỉ định không gian địa chỉ giữa "{" và "}" trong sed, vì vậy tôi chỉ mong đợi "Acer" đầu tiên được thay thế thành "TTTT". Thứ hai là không mong đợi. Làm cách nào để khắc phục sự cố này? Tôi đã thử nghiệm trên Ubuntu 15.10 và phiên bản sed là sed (GNU sed) 4.2.2.không gian địa chỉ sed giữa "{" và "},"
Xin cảm ơn trước.
$ echo "
[
{
\"manufacturer\": \"Acer\",
\"regularPrice\": 165.99,
},
[
\"manufacturer\": \"Acer\",
\"regularPrice\": 165.99,
],
{
\"manufacturer\": \"Acer\",
\"regularPrice\": 165.99,
}
]
" | sed "/{/,/},/ {s/\"Acer\"/\"TTTT\"/}"
kết quả của nó là như sau:
[
{
"manufacturer": "TTTT",
"regularPrice": 165.99,
},
[
"manufacturer": "Acer",
"regularPrice": 165.99,
],
{
"manufacturer": "TTTT",
"regularPrice": 165.99,
}
]
Mẫu thứ hai trong địa chỉ có nghĩa là "dừng khi tìm thấy điều này". Nó không có nghĩa là "không tiến hành nếu điều này không được tìm thấy". –