提供した販売者情報を確認した際の備忘録-ブラウザで処理するには行数が多いデータへの対応例-

Googleの広告枠管理の一貫で、販売者情報を提供した時の事。

その際参考にしたのが「sellers.json で販売者情報を提供する」のページ。

一通り登録したものの、上手く登録されたのか確認したいのが人間。

参考にしたページの最後にも

ご自身の情報を見つける方法

  1. Google の sellers.json ファイルを開きます。
  2. Ctrl+F(Mac の場合は Command ⌘+F)キーを使って、ご自身の seller_id を検索します。
  3. 情報を確認します。

とあるので早速試してみた。

しかし残念ながら、データ量が多すぎるのかブラウザがすぐに固まってしまう。

何度やっても埒が明かなかったが、最近知ったcurlをターミナルで使ったらどうだろう?と思って早速curlコマンドを使ったらあっさり全データを取得出来た。

$ curl https://storage.googleapis.com/adx-rtb-dictionaries/sellers.json
{
  "contact_email": "sellers_json@google.com",
  "contact_address": "1600 Amphitheatre Parkway Mountain View, CA 94043",
  "identifiers": [{
    "name": "T*******",
    "value": "f****f*********"
  }],
  "version": "1.0",
  "ext": {
    "notice": "This file is a beta and is unverified."
  },
  "sellers": [{
    "seller_id": "pub-0000*************",
    "is_confidential": 1,
    "seller_type": "XXXXXXXXX"
  }, {
〜中略〜
  }, {
    "seller_id": "pub-99***************",
    "is_confidential": 1,
    "seller_type": "XXXXXXXXX"
  }]
}%             

しか〜し、出力出来たのは出来たものの、データ量が多すぎて探すのも一苦労。スクロールしまくって見つける事が出来ましたが、せっかくなのでこんな力技以外の方法を。

そう、grepコマンドです。

まずはcurlでGETしたデータを、パイプで繋いだ先のgrepコマンドで、求めるワード”pub-********(番号は伏せています)”を”含んだ行”を探すコードはこちら。

$ curl https://storage.googleapis.com/adx-rtb-dictionaries/sellers.json | grep --color 'pub-******************'

grepの後に–colorを付ける事で、行の中に含まれる、求めるワードを色付けて分かり易くしてくれます。

このコマンドで出力するとこうなります。

$ curl https://storage.googleapis.com/adx-rtb-dictionaries/sellers.json | grep --color 'pub-******************'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
 55  134M   55 73.9M    0     0  9154k      0  0:00:15  0:00:08  0:00:07 9924k    "seller_id": "pub-******************",
100  134M  100  134M    0     0  9721k      0  0:00:14  0:00:14 --:--:-- 10.1M

大量にあったデータから、求めていた’pub-******************’を含む”seller_id”: “pub-******************”
と言う一行が抽出されている事が分かります。

因みに、この「pub-******************」の部分には–colorコマンドのお陰で色が付いています。

さて、この一行が出力されたのですが、最初に引用した全データと見比べた所、この行だけでは物足りない事が分かります。

そう、前後の行も合わせて抽出して、”is_confidential”と”seller_type”も確認したい。

調べた所、”-Ax”を追加することで、grepで抽出した行からx行分後のデータを、”-Bx”を追加することで、同抽出した行のx行前のデータから、抽出する事が出来る様です。

と言う事で前1行と後ろ3行を取得できる様に修正したコードで出力するとこの通り。

$ curl https://storage.googleapis.com/adx-rtb-dictionaries/sellers.json | grep --color -A3 -B1 'pub-******************'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
 55  134M   55 74.0M    0     0  9942k      0  0:00:13  0:00:07  0:00:06  9.7M  }, {
    "seller_id": "pub-******************",
    "is_confidential": 1,
    "seller_type": "XXXXXXXXX",
  }, {
100  134M  100  134M    0     0   9.8M      0  0:00:13  0:00:13 --:--:-- 9581k

必要最小限にして十分に前後の行を抽出する事が出来ました。(“-B2″にした為余分な行が入っていたので”-B1″に修正しました(8/25))
出力データ形式が決まっていると、前後の何行が必要なのか良く分かります。

以上、ブラウザで扱うデータが多過ぎて立ち往生した場合、ターミナルでcurlからのgrep -Ax -Bxが1つの解決策になった例。

情報共有して下さる皆様に感謝。

コメント

タイトルとURLをコピーしました