presumably sooner or later the cat line itself will be too long. A lot of commands accept an argument, or a file that contains arguments eg grep -f {file}, curl -F abc=@file. Sadly cat doesn't seem to be one of them.
You could stack another parallel:
echo "parallel -k -a file_of_paths cat | mafft" | parallel
it would probably be fairly straightforward to make mafft take a file of paths parameter also, and more reliable!
Is this bioinformatics related?
Well, it might not seem at first sight, but I am actually trying to concatenate several FASTA files and align them with MAFFT. :)
That's sufficient to be bioinformatics related, but since we are a "focussed" forum it would be best if you mention that application in your initial question to remove all doubt.
Can print the output of
parallel --max-line-length-allowedSure, it matches with the error message:
Can you build your command (or parts of it) programmatically, and
echothat as a string toawk '{ print length($0) }'orwc -cetc.? This may help track down which command (or which parts) are too long forparallel.As I said on another post, I actually have a script with all the commands that I pipe to parallel, and it is actually the first line that has 223188 characters. Also noticed that there are other lines that won't work either:
Strangely, I extracted the first command, turned it into an
echoand piped it tobash, and it worked fine.... :/