O comando Xargs funciona no linux, mas não no mac

0

Eu executei o seguinte comando xargs no meu mac

echo replace | xargs -n 1 -I {} echo "asdf asdf adf asdf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf adf asdf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf{} asd"

Dá a saída como esta, não imprimindo a string inteira

asdf asdf adf asdf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf adf

Eu tentei o mesmo em uma máquina linux e obtive a saída esperada. Você pode me dizer como posso fazer isso funcionar no mac?

asdf asdf adf asdf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf adf asdf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdf asdf asdf asdf adf asdfreplace asd
    
por banarun 19.03.2018 / 13:48

1 resposta

2

Da página xargs(1) man

 -I replstr
         Execute utility for each input line, replacing one or more
         occurrences of replstr in up to replacements (or 5 if no -R
         flag is specified) arguments to utility with the entire
         line of input.  The resulting arguments, after replacement
         is done, will not be allowed to grow beyond 255 bytes;

e, em seguida, se contarmos os caracteres gerados pelo seu comando

$ wc -c out
     255 out

então você está correndo em um limite documentado. Soluções alternativas não seriam para fazer isso (o que exatamente é a necessidade aqui para um argumento tão longo?) Ou talvez instalar uma versão linux do xargs e chamar isso.

    
por 19.03.2018 / 16:07

Tags