Làm cách nào tôi có thể phân tích cú pháp đầu ra JSON trên trình bao?
Ví dụ: Amazon Web Services cung cấp CLI để truy xuất trạng thái của các phiên bản của bạn:
$ aws ec2 describe-instances <my_instance_id>
Nhưng lệnh trả về một chuỗi JSON. Đầu ra của lệnh đó trông như thế này:
$ aws ec2 describe-instances x12345
{
"Reservations" :
{
"OwnerId": "1345345"
"Groups": [],
"SecurityGroups": [
{
"Foo" : "yes"
"Bar" : "no
}
]
}
}
Có một trình bao được xây dựng có thể được sử dụng để phân tích đầu ra JSON không?
Ví dụ, tôi muốn chụp trong một biến shell FOO
, như sau output["Reservations"]["SecurityGroups"][0]{"Foo"}
.
Trong trường hợp nó có ích, tôi đặc biệt quan tâm đến các giải pháp có thể hoạt động từ Zsh.
--output text
nếu bạn muốn phân tích cú pháp trong shell mà không sử dụng các công cụ bên ngoài như thế nào jshon
.
jshon
lần đầu tiên, tôi đã theo liên kết của bạn. Đọc xong, tôi chỉ có thể nói rằng tôi rất hài lòng rằng tôi, tình cờ, đã nghe và cài đặt jq
trước. Tôi nghĩ bạn cũng có thể muốn nghe về nó nếu bạn chưa có - nó không bận tâm với tất cả các công tắc dòng lệnh đó và có thể thực hiện các biểu thức chính của nó - thậm chí nó còn cho phép bạn khai báo các hàm và biến nếu bạn muốn. Xem câu trả lời ở đây về nó nếu bạn quan tâm.