GNU parallel invoca o comando que você especifica através de um shell. Isso é ocasionalmente conveniente, mas geralmente é difícil, como você descobriu, por causa dos problemas de cotação e da dependência da variável de ambiente SHELL
. (Ole e eu já tivemos palavras sobre isso.)
Você tem que dizer em paralelo que o que você está passando é um executável com argumentos , ao invés do comportamento padrão que assume que os argumentos são um comando a ser executado pelo programa chamado pela variável de ambiente SHELL
, dividida arbitrariamente em partes que são unidas com um espaço entre elas . Não existe tal opção; o mais parecido é dizer paralelamente para citar o comando para que o shell acabe executando o comando correto.
parallel -a oldfile.txt -k --block $BYTES --pipe-part -q sed 's/\s.*$// ; s/\(.*\)/\L/' > newfile.txt