You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
jqはとても便利なコマンドです。 JSONを返すAPIを実装するときや、SaaSのAPIから特定の情報を抜き出してシェル変数に代入するときなど、web開発や運用には欠かせないツールとなっています。 しかし、私にとってjqのクエリを一発で書くのは容易ではなく、思い通りの出力が得られないことがよくありました。 難しいエラーメッセージに悩まされて、jqで書くのを諦めて別の言語で書き直すこともありました。 jqの十八番と思える場面で使いこなせないのは、なかなか悔しいものがあります。 ツールを使うのが難しいなら、同じものを作ってしまえばよいのです。 jqの全ての機能を実装する jqを言語としてきちんと書けるようになる jqを完全に理解する jqの全ての機能を自分で実装してしまえば、jqがどういうものか、クエリがどのように処理されるのか、詳しくなれるはずです。 jqを得意な言語と言えるようになって、ク
Github 上にある特定 user のリポジトリをぜんぶローカルに持ってきたいなぁというときのワンライナー。 nablarch のところは適当なユーザに書き換えれば OK。ghq ではなく単に git を使いたければ、ghq get を git clone に変えれば良いです。 $ curl 'https://api.github.com/users/nablarch/repos?per_page=100' | jq -r '.[]["clone_url"]' | xargs -n1 -P4 ghq get Github API Github には API があって、参照だけなら HTTP リクエストを送るだけで情報を取得できるようになってます。特定ユーザのリポジトリ一覧を得る API はこちら。 Repositories - GitHub Docs デフォルトでは 30 件しか取得でき
よく訓練されたアップル信者、都元です。APIのデータ入出力フォーマットとして、JSONはすっかり市民権を得た感がありますね。私、XMLも意外と好(もごもご Jacksonで目的の値を取り出す さて、Javaの世界において、よく使われているJSON処理ライブラリとしてJacksonというものがあります。 ここでは、OpenWeatherMapの出力を使って説明していきます。(ただし、以下を実際に試してみるためには、OpenWeatherMapに対して無料登録をおこなって、APIキーを手に入れる必要があります。) http://api.openweathermap.org/data/2.5/weather?APPID=XXXXAPIKEYXXXX&q=Tokyo,jp 上記URLにアクセスすることによって、下記のような情報が得られます。 { "coord": { "lon": 139.69,
テキストベースのファイル形式と、それぞれを(主にLinux上で)操作するためのコマンドラインツールのリストを掲載しています。 目次 DSV XML,HTML JSON YAML,TOML INI 設定ファイル おまけ:単一ファイルデータベース用コマンドラインインタフェース(CLI) ライセンス 情報開示 DSV CSV や TSV などを含む DSV(Delimiter-separated values、区切り文字で区切られた値) です。 Awk AwkはPOSIXで標準化されているコマンドラインツールで、DSVデータ処理用プログラミング言語です。Awkに関するリンクは以下のとおりです。 Awk.info — Awkに関する情報が豊富です。 AWK Vs NAWK Vs GAWK —プラットフォーム別実装の比較です。 すでにプログラミング言語を使用してプログラミングをしている場合は、naw
« golang で画像アップロードが簡単に出来る go-imageupload を使ってみた。 | Main | SQLite3でカジュアルにズンドコキヨシ » コマンドラインから JSON を扱うツールとしては jq が一般的ですが、例えば ls を実行した結果を JSON の Array にしたいであったり、コマンドライン引数から簡単に Object を作りたいといった場合には一旦考え込まないといけないくらい使い方が難しかったりします。そんな中でひょいと現れたのが jo です。 GitHub - jpmens/jo: JSON output from a shell JSON output from a shell https://github.com/jpmens/jo 作者である jpmens さんがなぜ jo を作るに至ったかをブログに書いています。 Jan-Piet Mens
よく訓練されたアップル信者、都元です。引き続きjqのお話。本日は上級編です。 まずおさらいの意味も込めて下記は、ざっと読んでおいて頂けると。 jqを活用してAPIレスポンス等から欲しい情報だけを抽出する【初級編】 jqを活用してAPIレスポンス等から欲しい情報だけを抽出する【中級編】 前回の練習問題の答え さて、まず前回の練習問題の答えをさらっと。1つ目の解答例は下記の通りです。「どっと・ふー・むきむき」と読んでください。 $ cat example.json | jq '.foo[][]' 2つ目の解答例はこんな感じでしょうか。 $ cat example.json | jq '[.foo[][] | {(.key): .value}] | add' jqにおける関数 さて。 ある値をから別の値を作る操作のことを関数(function)と呼びます。例えば今まで見てきたjqのクエリはそれぞ
サーモン大好き、横山です。 jsonを見るときに、大活躍するjqですが、「入れたと思ったサーバに実は入ってなかった!」という経験があるんじゃないでしょうか? Amazon Linuxの場合ですと、 $ sudo yum install -y jq のコマンドを叩けばインストールできますが、今回は敢えてjqがなかった場合の方法をご紹介いたします。 この記事はjqの使用を抑制するような記事ではございません jsonを取得する 今回は OpenWeatherMap のAPIを使い、東京の天気の情報をjsonで取得します。 $ curl -s "http://api.openweathermap.org/data/2.5/weather?q=Tokyo,jp" {"coord":{"lon":139.69,"lat":35.69},"sys":{"message":0.0179,"country"
よく訓練されたアップル信者、都元です。引き続きjqのお話。本日は中級編です。 本日のお題は、このような入力値 example.json を利用します。 { "foo": { "bar": [ { "key": "1-key", "value": "1-value" }, { "key": "2-key", "value": "2-value", "option": "2-opt" } ], "baz": [ { "key": "3-key", "value": "3-value", "option": "3-opt" }, { "key": "4-key", "value": "4-value" } ] } } 配列の皮むきとオブジェクトの皮むき 初級編では「配列の展開」として.[]という記述を解説しました。 $ cat example.json | jq '.foo.bar' [ { "
よく訓練されたアップル信者、都元です。jqというツールはご存知でしょうか。ご存じない方は、まずはこの辺りのエントリーを御覧ください。 jqで簡単JSON加工 軽量JSONパーサー『jq』のドキュメント:『jq Manual』をざっくり日本語訳してみました jqは要するに、入力したJSONに何らかの加工をして、その結果のJSONを出力するツールです。どのような加工をするのかを指定するためのクエリ言語があり、それを解釈して実行する役割を持っています。 AWSをはじめとして、各種Web APIのレスポンスはJSONで取り扱うことが多く、そのJSONから欲しい情報のみをリストアップしたい、というニーズは常に存在します。 例えば aws ec2 describe-instances コマンドを使えば、全てのEC2インスタンスの情報が一度に取れます。筆者が扱うとある環境でコマンドを実行してみたところ、
GWが始まりましたが、鎌倉のGWは観光客多すぎて逆に住民はげんなりして外に出なくなる感じです。とはいえ路地まで観光客が攻め込んでくることは少ないので、路地を散歩する分には天気がよくていい感じですね。ちなみに人力車のおにーさんはそういう味のある路地を知り尽くしているので人力車で移動するのはそこそこオススメです(ぼくは乗ったことないけど「こんなところも通るんだ!」ってところで見かけたりします)。 さて、jqというコマンドをご存じでしょうか。 jq jq is a lightweight and flexible command-line JSON processor. と書いてあるとおり、コマンドラインでJSONを扱うことができるコマンドです。で、今まさに仕事で巨大JSONと戦うことが多く、このコマンドが大活躍です。 とはいえ、ぼくの使い方としては「巨大JSONをキレイに整形して表示する」とい
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く