gps location
日付、時刻、位置情報を返すbashコマンドを使用しています。
[john@hostname :~/develp] $ gps location
Location: {"date": "16/07/20", "time": "19:01:22", "latitude": "34.321", "longitude": "133.453", "altitude": "30m"}
硬度をファイルに書きたいのですが、そこに到達する前に文字列を正しく解析する必要があります。
[john@hostname :~/develp] $ variable=`gps location | awk '/"longitude":/ {print $9}'`
[john@hostname :~/develp] $ echo $variable
"133.453",
[john@hostname :~/develp] $
現在、awk
硬度を検索するのではなく、文字列全体を取得して9番目の文字列を見つけます。理想的には、正規表現/キーワードアプローチを使用して硬度を見つけ、次の文字列を探したいと思います。試してみてgrep | cut
みましたsed
。運が悪い。私ができることはawk
。
ベストアンサー1
これを削除すると、Location:
JSONが残ります。
$ echo '{"date": "16/07/20", "time": "19:01:22", "latitude": "34.321", "longitude": "133.453", "altitude": "30m"}' |
jq .longitude
"133.453"
キーワードをあらかじめ印刷しないオプションがある場合は、マニュアルページをご覧ください。gps
キーワードを削除しないと簡単です。例:Location:
$ echo 'Location: {"date": "16/07/20", "time": "19:01:22", "latitude": "34.321", "longitude": "133.453", "altitude": "30m"}' |
cut -d':' -f2- | jq .longitude
"133.453"
または:
$ echo 'Location: {"date": "16/07/20", "time": "19:01:22", "latitude": "34.321", "longitude": "133.453", "altitude": "30m"}' |
sed 's/Location://' | jq .longitude
"133.453"