sfdx差|ティー結果.json;
ここでは、json形式の結果/応答を取得し、それをresult.jsonファイルに追加します。以下は私が得るjsonです。
{
"status": 3,
"result": {
"source": {
"type": "folder",
"origin": "/source"
},
"target": {
"type": "folder",
"origin": "/target"
},
"difs": [
{
"type": "In Progress",
"entity": "Phone",
"result": "added"
},
{
"type": "Completed",
"entity": "SMS",
"result": "added"
},
{
"type": "Scheduled",
"entity": "Web",
"result": "added"
}
]
}
}
私たちがこれを行う方法はありますか?私はシェルスクリプトに初めて接するので、助けてください。
答え1
現在の質問のJSON文書があると、次のjq
コマンドはそれを表ヘッダーを含む表示された表形式に対応するCSV形式に変換します。
jq -r '["Status","Value","Result"],
(.result.difs[] | [.type,.entity,.result]) | @csv' file.json
まず、CSVに変換する必要がある各行の値の配列を作成し、組み込み演算子を使用して@csv
適切に参照されるCSVデータを作成します。
サンプルJSONドキュメントが与えられた場合、出力は次のようになります。
"Status","Value","Result"
"In Progress","Phone","added"
"Completed","SMS","added"
"Scheduled","Web","added"
後でテーブルを作成するために使用したいスプレッドシートプログラムにインポートできます。
cvslook
コマンドラインCSVパースツールツールキットを使用してそれを後処理すると、csvkit
テーブルのMarkdownバリアントを取得できます。
jq -r '["Status","Value","Result"],
(.result.difs[] | [.type,.entity,.result]) | @csv' file.json |
csvlook
これは出力されます
| Status | Value | Result |
| ----------- | ----- | ------ |
| In Progress | Phone | added |
| Completed | SMS | added |
| Scheduled | Web | added |
マークダウンでレンダリングすると、次のようになります。
状態 | 値 | 結果 |
---|---|---|
進行中 | 電話 | 次へ追加 |
十分 | ショートメッセージ | 次へ追加 |
予約する | ネットワーク | 次へ追加 |