xargs “lista de argumentos muito longa”

1

Eu quero fazer algo assim:

cat 5.txt | xargs -0 openssl prime

mas xargs está dizendo que a lista de argumentos é muito longa

Editar:

cat 3.txt | xargs -n 1 openssl prime | wc -l

funciona, obrigado

    
por asfsafsfsaf 06.04.2013 / 04:09

2 respostas

4

Você pode tentar usar xargs ' -n :

Use at most max-args arguments per command line.

Vale a pena notar que xargs pode ser feito para

Print the command line on the standard error output before executing it.

com -t , o que é bastante útil para depuração.

    
por 06.04.2013 / 04:32
2

O problema parece que você não deveria estar usando -0, -0 é para quando você tem seus argumentos no arquivo separados por caracteres nulos em vez de $ IFS, que geralmente é espaço em branco. Se o arquivo estiver formatado com um argumento por linha ou com argumentos separados por espaços em branco, omita -0.

Eu também estou supondo que você não pretende executar openssl prime arg1 arg2 arg3 arg4...." but instead run openssl% 1 arg1 then run openssl prime arg2 , then openssl prime arg3 , etc, in which case, add the -1 switch as well, which is shorthand for , se você realmente quiser executar um invocação de openssl por linha do arquivo, você quer:

xargs -1 openssl prime < 5.txt

ou com o uuoc (uso inútil de gato)

cat 5.txt | xargs -1 openssl prime

em um xargs não-gnu que não conhece a opção -1, isso seria:

xargs -n1 openssl prime < 5.txt
    
por 06.04.2013 / 04:42

Tags