eNeed you help over here!
Pass a space-containing argument to a command using GNU parallel so it doesn't backslash it.
Example:
parallel --dry-run COMMAND {} ::: opt1 "opt2 arg" opt3
Expected result:
COMMAND opt1
COMMAND opt2 arg
COMMAND opt3
Obtained result:
COMMAND opt1
COMMAND opt2\ arg
COMMAND opt3
Space character is backslashed making my command to fail
I want it because my command uses options which, only in some cases, need a explicit argument. I want to run it several times with a different option each and over different sets of data.
And because it has to be possible and I want to know how!!
All these variants and all (or at least many) permutations among them (even if some may make not sense):
parallel COMMAND {} ::: opt1 'opt2 arg' opt3
parallel -q COMMAND {} ::: opt1 "opt2 arg" opt3
parallel eval COMMAND {} ::: opt1 "opt2 arg" opt3
parallel COMMAND {} :::: file # one option per line trying both, quoted and unquoted
cat file | parallel COMMAND {}
A="opt2 arg"
parallel COMMAND {} ::: opt1 $A opt3
Nothing works. I always get the backslash escaping the space. Read the manual but can't find the solution to my problem. I'm probably missing or not understanding something.
Any suggestion??
Thank you very much.
Example: You want to run seq 5 10
. This does not work:
parallel seq ::: "5 10"
This works:
parallel eval seq ::: "5 10"
Version >=20190722:
parallel seq {=uq=} ::: "5 10"