問題タブ [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 - 複雑な jq フィルター
免責事項: これは宿題ではありません。これは、私が仕事で行っていることのサニタイズ バージョンです。
jq を使用していくつかの json データをフィルター処理しようとしており、フィルター内の一致するレコードごとにオブジェクトを返したいと考えています。私がやっていることのテキストによる説明は次のとおりです。 CSC101.」
テスト JSON オブジェクト (プログラム入力) は次のとおりです。
現在のフィルター式と結果は次のとおりです。
それは一種の機能ですが、余分な出力が生成されます。CSC101 のエントリがある学期のみを生成したいのですが、代わりに、CSC101 を受講した学生のすべての学期を返します。助言がありますか?
bash - EC2 インスタンスのパブリック IP アドレスを一覧表示する
Bash を使用して EC2 インスタンスのパブリック IP アドレスを区切り文字 (スペースまたは改行) で区切って一覧表示したいと考えています。
を使用して出力をjqにパイプしようとしましaws ec2 describe-instances | jq
たが、IP アドレスだけを分離することはできないようです。
aws
これは、 に引数を指定して単独で行うことができますjq
か、それともまったく別のものですか?
jq - {} と select の間の相互作用
これが私のテストデータです:
出力を簡素化し、存在する場合は「名前」フィールドを表示し、常に ID を表示しようとしています。たとえば、次のスクリプトはほとんど機能します。
存在しない .keys に対するガードを追加し、気になる「キー」のセクションをフィルタリングしようとすると、次のようになります。
{} は、どういうわけか「null」ではなく長さゼロの配列になってしまうと思います。| の代わりに何を使用すればよいですか? 私は何を誤解していますか?
json - 別のキーの値に基づいて条件付きで値を出力する
JSON の例を次に示します。
「Key」が「Type」の場合のみ「Value」の値を出力したい。したがって、「C」が出力されるはずです。これは私がこれまでに持っているものです。
しかし、それは印刷されます:
「フー」
「シー」
これを行う方法はありますか?
shell - jqでのSQL結合の類似物
私は次のjsonを持っています:
基本的に、jq を使用してこの出力を生成する必要があります。これは、SQL 結合の結果に似ています。
何か案は?
regex - 正規表現パターンを構築しながらjqの値によるフィルタリング
実際のコードにフィードする入力のバージョンを作成しようとしているときに、キーの値に大文字と小文字を区別するバージョンの文字列を含む文字列を「含む」ファイルを作成する必要があります。つまり、「contains」 「camfrog または tubemate、または soundcloud 」を実装するための正規表現を作成します。
サンプル JSON 入力:
この Json 入力から、「Camfrog」のような名前を持つアプリをフィルタリングする必要があります (CAMFROG、camfrog .. などの可能性があるため、正規表現は大文字と小文字を区別しない必要があります。これに加えて、次のような一連の app_names を出力する必要があります。 「Camfrog」、「Tubemate」、「soundcloud」などと言ってください。jq のマニュアルをhttp://stedolan.github.io/jq/manual/で調べましたが、式を作成できませんでした。
これが私が試したことです-:
しかし、一致が定義されていないとコンパイルエラーが発生します。Jq内でこれを行うにはどうすればよいですか。
フォールバック -: これを pandas のデータフレームとしてロードし、そこで正規表現を実行できますが、私のファイルには本当に必要のないものがたくさんあるので、Jq ですばやくフィルター処理したいと思います。
アプリのフィルタリング後のサンプル出力 (元の出力と同じように、すべてのキー、値が必要です-:
PPS :一致する正規表現を作成するだけでなく、「釣り方を教えて」いただければ幸いです。
フォローアップの質問-:
また、サンプルの例をテストしようとすると、 jq manual のように -:
echo [{"foo": 1, "bar": 2}, {"foo": 1, "bar": 3}, {"foo": 4, "bar": 5}] | jq 'ユニーク(.foo)
エラー: 一意の引数が多すぎます (0 が必要ですが、1 を取得しました) unique(.foo)1 コンパイル エラー
jqマニュアルを読んでいる間、以下のようなサンプル例 -:
ここで入力を他にどのように試す必要がありますか?
私が辞書を実際に構築している方法は、です</home/ekta/SamplePrototype.dat jq -c '{appid:.app.id,,app_name:.app.name,publisher_id:.app.publisher_id}'
が、jqマニュアルのようにテストしたいと思います。ここで私が間違っていることについての指針を教えてもらえますか?
json - 配列の値に基づいてJQのアイテムを選択する方法
次のような行を含むファイルがあります。
jqを使用して、"items" 配列に "blue" を持つ JSON 値のみを選択して表示するにはどうすればよいですか?
したがって、出力は次のようになります。