JC, chuyển đầu ra của các công cụ dòng lệnh phổ biến sang JSON
(github.com/kellyjonbrazil)Tóm tắt về bộ chuyển đổi JSON JC
jcchuyển đầu ra của các công cụ CLI, kiểu tệp và chuỗi văn bản thông thường sang định dạng JSON để có thể phân tích cú pháp dễ dàng hơn trong script.- Có thể xem đầu ra đã được chuyển sang JSON thông qua ví dụ với lệnh
dig, và tiếp tục xử lý bằng các công cụ nhưjqhoặcjello. - Cũng có thể dùng như một thư viện Python; trong trường hợp này, thay vì JSON, nó trả về dictionary Python, danh sách dictionary hoặc đối tượng iterable lười của các dictionary.
Cách cài đặt bộ chuyển đổi JSON JC
- Có thể cài đặt qua
pip, kho gói của hệ điều hành hoặc tải binary. - Cung cấp các lệnh cài đặt dùng được trên nhiều bản phân phối Linux, macOS và FreeBSD.
Cách sử dụng bộ chuyển đổi JSON JC
- Nhận đầu vào được pipe từ
STDINvà xuất đầu ra của lệnh trước đó raSTDOUTdưới dạng JSON. - Có thể dùng cú pháp "magic" bằng cách thêm
jctrước lệnh để chuyển đổi, hoặc dùng trước đường dẫn tệp/proc. - Có thể điều chỉnh định dạng đầu ra và xử lý các dòng cụ thể thông qua nhiều tùy chọn parser và tính năng slice.
Các đặc điểm của bộ chuyển đổi JSON JC
- Cung cấp biểu diễn dữ liệu mặc định và thô, đồng thời chuyển các số đã biết theo schema thành giá trị JSON int/float.
- Có thể truy cập JSON thô đã tiền xử lý bằng tùy chọn
--rawhoặc tham sốraw=True. - Trình phân tích cú pháp streaming giúp xử lý đầu ra lệnh lớn theo cách tiết kiệm bộ nhớ.
Tầm quan trọng của bộ chuyển đổi JSON JC
- Có thể tìm thấy động lực của dự án nhằm áp dụng triết lý Unix vào thế kỷ 21 cùng các trường hợp sử dụng trong bài blog và bài phỏng vấn.
- Hữu ích cho việc phân tích đầu ra lệnh trong nhiều môi trường như Bash scripting, Ansible, Saltstack, Nornir và FortiSOAR.
Khả năng tương thích của bộ chuyển đổi JSON JC
- Một số parser hoạt động không phụ thuộc nền tảng; các parser chuyển đổi đầu ra đặc thù theo nền tảng có thể tạo thông báo cảnh báo tương thích.
- Có thể xem toàn bộ thông tin parser bằng cách chạy
jc -ap.
Cách đóng góp cho bộ chuyển đổi JSON JC
- Hoan nghênh đóng góp về mã nguồn hoặc việc bổ sung/cải tiến parser; có thể dùng
jc/parsers/foo.pyhoặcjc/parsers/foo_s.pylàm mẫu để gửi pull request.
Ý kiến của GN⁺
Điều quan trọng nhất trong bài viết này là jc có thể chuyển đầu ra của nhiều lệnh, kiểu tệp và chuỗi sang JSON để có thể xử lý bằng lập trình. Điều này giúp các nhà phát triển làm việc với dữ liệu dễ dàng hơn, đặc biệt hữu ích khi viết script trong môi trường Unix và Linux. Bài viết trở nên thú vị vì jc là công cụ có thể cải thiện đáng kể khả năng tự động hóa và hiệu quả trong phát triển phần mềm cũng như quản trị hệ thống.
1 bình luận
Ý kiến trên Hacker News
Giải quyết vấn đề chuyển đầu ra lệnh sang định dạng JSON trên FreeBSD bằng thư viện
libxolstừng được hỗ trợ nhưng có trường hợp đã bị loại bỏ--jsontrên Unix/LinuxBày tỏ lo ngại về khó khăn trong việc bảo trì
--<CMD>có thể khiến phần trợ giúp/tài liệu hướng dẫn trở nên phức tạpGiới thiệu công cụ có tên Nushell
Đánh giá tích cực việc các công cụ CLI hỗ trợ xuất JSON
Ý kiến về cách sử dụng công cụ
jcjc dig example.comnên là cách dùng chính tốt hơndig example.com | jc --digBày tỏ sự ưa thích việc mọi đầu ra trong PowerShell đều là đối tượng
Bày tỏ sự kính trọng với người đảm nhận việc bảo trì công cụ
jcHỏi về danh sách các công cụ lệnh Unix hiện đại chấp nhận tùy chọn
--jsonChỉ ra lỗi thiết kế của Unix
Bày tỏ sự ngạc nhiên vì không dùng
textfsmtextfsmđược dùng rộng rãi để phân tích đầu ra CLI của thiết bị mạng