Curl JSON出力から特定の値を抽出する方法

Curl JSON出力から特定の値を抽出する方法

何らかの理由でこのコマンドを使用してJSON出力をjq解析することはできません。curl

grep、、などの標準のUnixツールを使用して特定のフィールドを抽出する必要がありますawksed

出力例curl:

[
  {
    "case_id": 1500,
    "date": "13:58 02-02-2021",
    "user": "admin",
    "ip": "1.2.3.4",
    "type": "test",
    "active": "true"
  },
  {
    "case_id": 1501,
    "date": "14:45 02-02-2021",
    "user": "admin",
    "ip": "1.2.3.5",
    "type": "dev",
    "active": "false"
  }
]

ipフィールドsumの値を抽出するには正規表現が必要ですtype


純粋なIP 1.2.3.4を抽出する必要があります。

同じ行にカンマ区切りの値が必要です。たとえば、

1.2.3.4, test  
1.2.3.5, dev

ベストアンサー1

awk解決策。

$ awk -F\" '$2~/^(ip|type)$/{a=a$4","}END{print substr(a,0,length(a)-1)}' file.txt
1.2.3.4,test,1.2.3.5,dev
$

おすすめ記事