[解決済み] jq: オブジェクトの各エントリについてキーと値を表示する
2022-09-14 09:26:55
質問
どうすれば jq を使ってこんな風にjsonを取ることができます。
{
"host1": { "ip": "10.1.2.3" },
"host2": { "ip": "10.1.2.2" },
"host3": { "ip": "10.1.18.1" }
}
と入力し、このような出力を生成します。
host1, 10.1.2.3
host2, 10.1.2.2
host3, 10.1.18.1
書式に興味はないのですが、キー名と値にアクセスする方法がわからないのです。
どのように解決するのですか?
トップレベルのキーをストリームとして取得するためには
組み込み関数
keys[]
. ですから、あなたの特定の問題に対する1つの解決策は、次のようになります。
jq -r 'keys[] as $k | "\($k), \(.[$k] | .ip)"'
keys
はキー名をソートした状態で出力します。
keys_unsorted
.
元の順序でキーを生成する、もう一つの代替案は、次のとおりです。
jq -r 'to_entries[] | "\(.key), \(.value | .ip)"'
CSV、TSV出力
ここで、@csvと@tsvのフィルタも検討する価値があるかもしれません、例えば
jq -r 'to_entries[] | [.key, .value.ip] | @tsv'
を生成します。
host1 10.1.2.3
host2 10.1.2.2
host3 10.1.18.1
埋め込みオブジェクト
次の例のように、関心のあるキーが埋め込まれている場合、jqフィルターは示された線に沿って修正されなければならないでしょう。
入力
{
"myhosts": {
"host1": { "ip": "10.1.2.3" },
"host2": { "ip": "10.1.2.2" },
"host3": { "ip": "10.1.18.1" }
}
}
修正する。
jq -r '.myhosts | keys[] as $k | "\($k), \(.[$k] | .ip)"'
関連
-
[解決済み] JavaScriptのオブジェクトにキーが存在するかどうかをチェックする?
-
[解決済み] モジュールの関数名(文字列)を使って、モジュールの関数を呼び出す。
-
[解決済み] Microsoft JSONの日付はどのようにフォーマットするのですか?
-
[解決済み] JavaScriptSerializer - 列挙型を文字列としてJSONシリアライズする
-
[解決済み] .NETでC#オブジェクトをJSON文字列に変換するには?
-
[解決済み] ASP.NETでJSONを単純なDictionary<string,string>にデシリアライズするにはどうすればよいですか?
-
[解決済み] jqを使用して、オブジェクト内の変数の値に基づいてオブジェクトを選択します。
-
[解決済み] VSCodeでlaunch.jsonに環境変数を追加する方法
-
[解決済み] UnixコマンドラインJSONパーサー?[クローズド]
-
[解決済み] Goを使用してJSONレスポンスを提供するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】jq: 文字列で配列のインデックスを作成できない
-
stdClass 型のオブジェクトを配列として使用できない
-
ajax return json format Report 500 Internal Server Error
-
[解決済み] Notepad++でJSONを再フォーマットする方法は?
-
[解決済み] JSON命名規則(snake_case、camelCase、PascalCase) [終了しました。]
-
[解決済み] JSONオブジェクトに末尾のカンマを使用することは可能ですか?
-
[解決済み] .NET NewtonSoft JSONのデシリアライズマップを異なるプロパティ名に変更する。
-
[解決済み] jqを使用してJSONからキー名を取得する方法
-
[解決済み] jqを使用してjsonドキュメントの単一の値を更新するにはどうすればよいですか?
-
[解決済み] JSON、REST、SOAP、WSDL、そしてSOA。これらはどのように結びついているのか