35856


下記のtoken.txtからaccess_tokenの中身（ya〜rJ）だけを標準出力させる方法を教えて下さい。

[code]

        $ cat token.txt 
         "access_token": "ya29.GltzBPiM93Gz67sL67VdZfQ5IDySH7iWenpufvl3dAEPnH7DeUxdL45s1pgnl7Ixs2rsj56dXygMkphYuvVxFYGqiz9qfb3IRqqyNqLJjtuIvVfznZBu2KPaLOrJ",
    
[/code]


CC BY-SA 3.0
2017-06-24T08:41:55.040
35855
2020-07-25T05:57:10.780
19297
question
linux shellscript unix
シェルで特定の文字から特定の文字までを抜き出す方法

[code]

    cat token.txt | tr -d '" ' | awk -F: '{ print $2 }'
    
[/code]

`tr`コマンドで不要なクォート(と空白)を予め削除、`awk`コマンドで2列目の値(=今回必要なaccess_token)を出力しています。


CC BY-SA 4.0
2017-06-24T09:15:43.080
35856
2020-07-25T05:57:10.780
2020-07-25T05:57:10.780
3060
3060
35855
answer


もっと汎用的に、pretty-print 形式の JSON データから `access_token`
の値を取り出す、という要件で考えてみる。(値にはエスケープが必要な文字を含まなものとする)

[code]

    $ sed -n 's/^ *"access_token": "\([^"]*\)",\{0,1\}$/\1/p' data.json
    
[/code]


CC BY-SA 3.0
2017-06-27T05:27:32.247
35908
2017-06-27T05:27:32.247
3061
35855
answer