Home > database >  Passing string rather than filename to -f option in jq under bash
Passing string rather than filename to -f option in jq under bash

Time:05-09

I'm curious whether I can replace file name with a string when using -f option of jq.

When I do

$ jq -nf <(echo \"hello world\")

it correctly outputs

"hello world"

But when I try

$ jq -nf <<<$'\"hello world\"'

this fails with error

jq: Could not open .: It's a directory

Anyone knows how to make this work? I know this is more of a bash question than jq.

$ jq '.' <<< '"hello world"' works though.

Thanks.

CodePudding user response:

You can use /dev/stdin to represent standard input as a file:

jq -nf /dev/stdin <<<$'\"hello world\"'
echo \"hello world\" | jq -nf /dev/stdin
  • Related