問題タブ [jq]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
json - 正しいセクションに JSON 値を追加します
私のjsonファイル「veggies.json」は次のとおりです。
タイプが「ルート」の別の塊茎「ヤムイモ」を追加したい - これはセクション TUBERS の下に移動する必要があります。
私は JSON を使い始めたばかりで、あらゆる種類の jq コマンドで頭を悩ませてきましたが、あまり役に立ちませんでした。
次のコマンドで values[0] の値を読み取ろうとしましたが、何もリストできないようです:
基本的に、私はこれを達成しようとしています - 植物セクションがTUBERSの場合、タイプ「ルート」の塊茎「ヤムイモ」を追加します
誰でも私を助けてもらえますか?
ああ、それが重要な場合は、jqバージョン1.2にこだわっています(下位互換性など)。
よろしくお願いします。
jq - JQで相対パスまたはワイルドカードを使用するにはどうすればよいですか
XPath // のように JQ で相対パスまたは名前を使用することは可能ですか?
または、JQ で .level1.*.level3.element のようなワイルドカードを使用することは可能ですか?
json - shell >> serial string JSON >> ES _bulk?
AWS EC2 で Elasticsearch を使用しているときに、一括インデックス作成の問題に遭遇しました。ES _bulk エンドポイントでは、ファイルは基本的に、各文字列に \n ターミネータが付いた JSON シリアル文字列である必要があります。そして、さまざまな Web API とファイルの前処理を使用して構築したものは、かなりの JSON、つまり人間が簡単に読み取れるものです。
いくつかのJavaライブラリなどをロードせずに、すべてのきれいなJSONを単純に文字列に連結するための単純なシェルスクリプトメソッドはありますか? 前処理中に基本ファイルにトークンを追加して、解析に役立つ場合は目的の \n 改行にタグを付けることができますが、ツールセットに関するヒントがあれば、感謝します。そこにスクリプトがあり、いくつかのライブラリがあることは知っていますが、これまでのところ、見栄えの悪い印刷を行うための単純なコマンド ライン ツールは見つかりませんでした。
bash - 2番目の値を追加するまで、while、for、およびifでバッシュします
jq を使用して curl ステートメントから値を抽出するスクリプトがあります。このスクリプトは、if ステートメントが true 値を 1 つ受け取ると常に正常に機能しますが、2 つ目のメディア パッケージが検出されて処理が必要になるとすぐに機能しなくなります。
コード:
実行が成功すると、次の結果が得られます。
最初の json とまったく同じ json を含む 2 番目の発行済みメディア パッケージをリストに追加すると、次のようになります。
これを修正する方法はありますか?私はぐるぐる回っていて、それを機能させることができませんか?
json - jqで空の配列をうまく削除する方法
O'Reilly の新しい「Data Science at the Command Line」を読んでいて、jq を使用して問題が発生しています。私はいくつかの JSON (NYTimes Articles API から返された) を持っています。次のように jq で解析しています:
そのため、"response":"docs" (配列) を探し、その配列内のすべての項目を "pub_type" などと一致させたり、名前を変更したりしています。これはうまく機能しますが、最後に空の配列を追加します:
空の配列を取り除くにはどうすればよいですか? 現在の私の解決策は、出力を jq に戻すことですが、それは最適とは言えません。したがって、これは機能します:
しかし、それは醜い感じです。これを行うより良い方法はありますか?
bash - 行をbashでjsonに変換する
リストをJSON配列に変換したいと思います。私はjqこれを探していますが、例は主に JSON の解析に関するものです (作成ではありません)。適切なエスケープが発生することを知っておくとよいでしょう。私のリストは単一行の要素なので、新しい行がおそらく最良の区切り文字になるでしょう。
json - JSON データを含むファイルから読み取ったシェル スクリプトで書式設定されたデータを取得する
生の json データから名前、現在および最新の利用可能なバージョンのリストを自動的に取得する 1 つのシェル スクリプトを作成します。
シェル スクリプトを使用して、ファイルに保存されている JSON データをフォーマットしようとしています。JQコマンドラインJSONパーサーを使ってみました。
スクリプトで書式設定された JSON データを取得したい。それらは、同じシナリオに対して JQ で提供される高度なオプションです。うまく使えません。
例: 以下の JSON を含むファイル
結果をフォーマットで取得しようとしています
誰かが何か提案できますか?
json - jq を使用して AWS CLI json 出力を解析し、ボリューム ID の配列を取得する方法は?
AWS CLI を使用して、BlockDeviceMappingsこのような特定のインスタンスの配列を取得しています。
awscli クエリ
出力
希望の出力
/dev/sdb、/dev/sdcおよびのボリューム ID のリストが/dev/sddそれぞれ必要です。
vol-sdb-xxxxx, vol-sdc-xxxx, vol-sdd-xxxxx
jqaws-cli 出力を にパイプして解析を実行しようとしましたjqが、「jq: エラー: 文字列で配列にインデックスを付けることはできません」というメッセージが引き続き表示されます。
また、DeviceName配列の 2 番目、3 番目、4 番目の要素が正しい順序であると想定できる順序で常に来るとは限らない可能性があるため、必要なボリューム ID の出力を確認したいと思います。可能な場合は、常に sdb、sdc、sdd の形式です。
更新 1
ジェフの提案の両方を試した後:
提案1
提案 2
出力なし
私は最新だと信じているjq-1.4を使用しています。
更新 2
以下は jq-1.4 で動作します。