Seminggu dua ni saya banyak guna jq untuk proses json hasil dari elasticsearch query. Tutorial ringkas ini banyak membantu:

https://andrew.gibiansky.com/blog/command-line/jq-primer/

Antara perkara yang saya hendak buat ialah menukar data dari format json kepada csv. Jadi kalau guna search API Elasticsearch & curl, tapisan jq adalah seperti berikut.

 jq -r '["timestamp", "src_ip", "src_port", "protocol", "username","password", "client"], (.hits.hits[]._source| [.timestamp, .src_ip, .src_port, .protocol, .ssh_username, .ssh_password, .ssh_version ])  | @csv'

Hasilnya nanti akan seperti ini:

timestamp,src_ip,src_port,protocol,username,password,client
2021-02-20T05:07:44.541314,5.188.86.221,48182,ssh,root,1234,SSH-2.0-Go
2021-02-20T05:07:44.810809,5.182.39.62,57314,ssh,root,1234,SSH-2.0-Go
2021-02-20T05:08:00.713323,5.188.87.51,38734,ssh,root,admin,SSH-2.0-Go

adli@ofis