Live data from Hacker News

To a Man with `Jq`, Everything Looks Like JSON

ishan.page

1–10 of 14 posts

Re: To a Man with `Jq`, Everything Looks Like JSON

#2
heh, wait until one discovers that gojq https://github.com/itchyny/gojq#difference-to-jq> accepts yaml input; so, if you happen to have a bunch of _almost_ structured data then some light sprinkling can turn it into yaml and then you're back in the loving embrace of the jq transformation/mutation language :heart:

   $ cat some-vendor-nonsense.txt
   product id: 5
   price: 3.14

   product id: 6
   price: 6.66

   $ sed "s/^/  /; s/^  product/- product/" 

Re: To a Man with `Jq`, Everything Looks Like JSON

#3
At some point in the last 25 years I learned "perl -pi -e" and "for x in [whatever]; do [something] $x; done" and I type those without thinking when I'm working in the shell. I haven't written any perl in probably 12 years, but I still use it for file manipulation.

Re: To a Man with `Jq`, Everything Looks Like JSON

#6
post #2

heh, wait until one discovers that gojq https://github.com/itchyny/gojq#difference-to-jq > accepts yaml input; so, if you happen to have a bunch of _almost_ structured data then some light sprinkling can turn it into yaml and then you're back in the loving embrace of the jq transformation/mutation language :heart: $ cat some-vendor-nonsense.txt product id: 5 price: 3.14 product id: 6 price: 6.66 $ sed "s/^/ /; s/^ pr…

Oh, that is great.. I was using dasel to convert yaml to json first ha ha.

Re: To a Man with `Jq`, Everything Looks Like JSON

#8
post #2

heh, wait until one discovers that gojq https://github.com/itchyny/gojq#difference-to-jq > accepts yaml input; so, if you happen to have a bunch of _almost_ structured data then some light sprinkling can turn it into yaml and then you're back in the loving embrace of the jq transformation/mutation language :heart: $ cat some-vendor-nonsense.txt product id: 5 price: 3.14 product id: 6 price: 6.66 $ sed "s/^/ /; s/^ pr…

Or just use "yq", if you need to parse yaml

Re: To a Man with `Jq`, Everything Looks Like JSON

#9
post #8
post #2

heh, wait until one discovers that gojq https://github.com/itchyny/gojq#difference-to-jq > accepts yaml input; so, if you happen to have a bunch of _almost_ structured data then some light sprinkling can turn it into yaml and then you're back in the loving embrace of the jq transformation/mutation language :heart: $ cat some-vendor-nonsense.txt product id: 5 price: 3.14 product id: 6 price: 6.66 $ sed "s/^/ /; s/^ pr…

Or just use "yq", if you need to parse yaml

You somehow thought that my problem was parsing yaml, when I thought I made it abundantly clear that it was jq's power that was my interest; yq has its own syntax and is not the jqlang that I use

Re: To a Man with `Jq`, Everything Looks Like JSON

#10
post #5

jq has string interpolation too, so it can even get a little bit nicer: " \(.) "

Yeah, but muscle memory bites me all the time and I put the backslash on the closing paren, too, because I'm so used to the regex usage of that syntax which needs them to match

I also want to draw the reader's attention to the magic of |@uri https://github.com/jqlang/jq/blob/jq-1.7/docs/content/manual...> for a bunch of cases, but doubly so in TFA's case where they're plugging strings into a URI context. Simple string concat often works great for "hello world", but the world is not always just hello, so one quick use of the filter and jq's got your back

  echo "the world's scary" | jq -Rr '"\(.)"'
Post reply on HN