Skip to content

Instantly share code, notes, and snippets.

@vergenzt
Last active October 10, 2024 15:42
Show Gist options
  • Save vergenzt/864010adbac64def312190d85607109b to your computer and use it in GitHub Desktop.
Save vergenzt/864010adbac64def312190d85607109b to your computer and use it in GitHub Desktop.
GNU parallel - easy JSON processing placeholder via jq expression
--rpl '{[(.*?)]} $Global::use{"IPC::Open2"} ||= eval "use IPC::Open2; 1;"; my $jq = open2(my $jq_out, my $jq_in, "jq", "-Rrc", "[ try(fromjson) // . | $$1 | tostring | \@sh] | join(\" \")") or die "Could not open pipe to jq!"; print $jq_in $_; close $jq_in; $_ = <$jq_out>; chomp $_; uq(); waitpid $jq, 0; $? && die'
$ jo foo=bar | parallel 'echo {[.foo]}'
bar
$ echo -e "$(jo foo=bar)\t$(jo bad=baz)" | parallel --colsep=\t 'echo {1[.foo]} blah {2[.bad]}'
bar blah baz
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment