我有一個檔案,其中包含類似的字串。
[{ "ip": "127.0.0.1", "timestamp": "1631581369", "port": [{"埠": 80, "proto": "tcp", "狀態": "open", "reason": "syn-ack", "ttl": 42} ] }]
我試著用下面的命令來獲得輸出
cat output.json | jq -r '.[].ip,.[].ports[].port '<
但是這幾行是分開的:
127.0.0.1
80
需要一個字串,如:
127.0.0.1:80
我試過
cat output.json | jq -r '.[].ip,.[].ports[].port | join(":")'
但我在運行這個程式時得到了錯誤。
但是我在運行這個命令時得到了錯誤:
jq: error (at <stdin> :69): 不能迭代字串("127.0.0.1")。
uj5u.com熱心網友回復:
jq -r '. [] | .ip ":" ( .ports[].port | tostring )' output.json
使用
join,它將是
jq -r '.[] | .ip as $ip | .ports[].port as $port | [ $ip, $port ] | join(":")' output.json
這兩種解決方案都可以在多個 IP 地址和每個 IP 地址的多個埠下作業。
uj5u.com熱心網友回復:
使用字串插值 :
jq -r '.[] | "(.ip):(.ports[].port)"' output.json
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/308022.html
標籤:
上一篇:來自檔案的累積計數值
