shellでcurlの戻り値をどのように解釈するか
Shell上でcURLの応答データを解析するには、次の方法を使用できます。
- grep と awk コマンドを使って、curl が取得したデータはテキスト形式なので grep で必要な情報の部分を抽出して、awk で必要なフィールドを抽出する
例えば、curlで返ってきたJSONデータのあるフィールドを取り出したい場合、以下コマンドを実行します:
curl <URL> | grep <field_name> | awk -F':' '{print $2}' | sed 's/"//g' | sed 's/,//g'
grepで特定のフィールドを含む行を取り出し、awkでフィールド値を取り出す。次に sed でフィールド値から二重引用符とコンマを削除する。
- jqコマンドの使用:curlで返されたデータがJSON形式の場合は、jqを利用するとより柔軟かつ容易に処理できます。jqはJSONデータをフィルタリング、編集、検索できる軽量コマンドラインJSON処理ツールです。
まず、jqコマンドをシステムにインストールする必要があります。次に、以下コマンドを利用してcurlによって返されたJSONデータをパースすることができます。
curl <URL> | jq '.<field_name>'
指定したフィールドの値を抽出しjsonで出力
これらの 2 つの方法は、広く使用される方法です。具体的な要件やデータ形式に基づいて、適切な方法を選択して、curl の応答データを解析します。