私は次のJSONを持っています:
[
{
"ip":"105.105.105.105",
"timestamp":"1543746097",
"ports":[
{
"port":80,
"proto":"tcp",
"status":"open",
"reason":"syn-ack",
"ttl":128
}
]
},
{
"ip":"105.105.105.105",
"timestamp":"1543746097",
"ports":[
{
"port":53,
"proto":"tcp",
"status":"open",
"reason":"syn-ack",
"ttl":128
}
]
}
]
csv
ポートを簡単な出力に抽出したい
80,53
頑張った
jq -r '.[]."ports" | map(.port) | @csv' 105.105.105.105_tcp.json
そして
jq -r '.[]."ports" | map(.port) | join(",")' 105.105.105.105_tcp.json
しかし、それらのどれも動作しません。
ベストアンサー1
以下はjq専用のソリューションです。
jq -r '[ .[].ports[].port ]|@csv' network.json
80,53
ここでのアプローチは、ポート番号を検索して配列にラップし、それをCSV形式に変換することです。