2012-03-07 11 views
2

私はbashスクリプトを使い、cURL POSTなどの出力を解析しています。私の特技ではなく、楽しいプロジェクトです。コマンドラインで複数の行と正規表現を一致させる

私のcURLの結果には、大きなjsonオブジェクトと同様にヘッダー情報も含まれています。私はjsonだけが欲しい。ここに出力があります。私はこれだけのJSONの一部をしたい

HTTP/1.1 201 Created 
Server: nginx/1.0.12 
Date: Wed, 07 Mar 2012 22:19:59 GMT 
Content-Type: application/json; charset=utf-8 
Connection: keep-alive 
Status: 201 Created 
X-RateLimit-Limit: 5000 
ETag: "8f778806263bd5c7b35a4d03f98663f7" 
Location: https://api.github.com/gists/1996642 
X-RateLimit-Remaining: 4989 
Content-Length: 1042 

{ 
    "html_url": "https://gist.github.com/1996642", 
    "files": { 
    "test.diff": { 
     "content": "this is content", 
     "type": "text/plain", 
     "raw_url": "https://gist.github.com/raw/1996642/434713954dc8d57f923dec99d82610828c5ef714/test.diff", 
     "language": "Diff", 
     "size": 15, 
     "filename": "test.diff" 
    } 
    }, 
    "git_pull_url": "git://gist.github.com/1996642.git", 
    "forks": [ 

    ], 
    "history": [ 
    { 
     "change_status": { 
     "additions": 1, 
     "deletions": 0, 
     "total": 1 
     }, 
     "user": null, 
     "url": "https://api.github.com/gists/1996642/2659edea4f102149b939558040ced8281ba8a505", 
     "version": "2659edea4f102149b939558040ced8281ba8a505", 
     "committed_at": "2012-03-07T22:19:59Z" 
    } 
    ], 
    "public": true, 
    "git_push_url": "[email protected]:1996642.git", 
    "comments": 0, 
    "updated_at": "2012-03-07T22:19:59Z", 
    "user": null, 
    "url": "https://api.github.com/gists/1996642", 
    "created_at": "2012-03-07T22:19:59Z", 
    "id": "1996642", 
    "description": null 
} 

(私はgithubの上に新しい要旨を作成しています)、およびSEDと、そうしようとしました。上記のコンテンツはtest.txtというファイルに保存されています。

$ cat test.txt | sed 's/.*\({.*}\)/\1/' 

これは機能しません。だから、私の質問は、最後のコマンドはJSONオブジェクトだけを表示させる方法です。

答えて

3

このsedコマンドは、JSONの部分が正しいと分かっていれば、その仕事をします。ファイルの終わりまで{で始まる最初の行から

印刷:

sed -n '/^{/,$ p' test.txt 
+0

それはそうでした。ありがとう! – hookedonwinter

0

Perlは代わりに読み取りライン・バイ・ラインの「段落」モードに入りますきちんとしたコマンドラインスイッチがあります。それでは、第1段落をスキップするだけです。

perl -00 -ne 'print unless $. == 1' test.txt 
関連する問題