LoginSignup
4
5

More than 5 years have passed since last update.

jq でsubstrみたいに文字列を取得する

Posted at

jq

jq 便利ですね。ってもう枯れた話題ですが、いまさらです。
でもちょっとやりたかったことでハマったのでそのメモ。

substrみたいに文字列を取得したかった

マニュアル嫁ってことで、30分位格闘しましたw。そしてやりたいことが簡単にできることを再確認しました。

こんなこと

具体的には、下記のjsonの日付(dateTime)文字列を分解して日付書式にしたかっただけ。まあやり方は、色々あるんですがシンプルにしたかったなということで格闘してました。

test.json
{
  "dateTime": "20170904152510701",
  "tempoCode": "Y123456"
}

を、下記のように。

2017/09/04      Y123456

sed使ったちょっとえぐい感じw

cmd
jq -r '[.dateTime, .tempoCode] | @tsv' | sed 's/^\(.\{4\}\)\(.\{2\}\)\(.\{2\}\)\(.\{2\}\)\(.\{2\}\)\(.\{2\}\)\(.\{3\}\)/\1\/\2\/\3/g'

かっこ悪いw。なので

cmd
jq -r '[ .dateTime[:4] + "/" + .dateTime[4:6] + "/" + .dateTime[6:8], .tempoCode ] | @tsv '

できたーw

便利やわ

json データを加工するために php やら perl で書いていたことを思うとコマンドでできて非常に便利、しかももっと高度なこともできる。

参考にさせて頂いたサイト

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5