O que há de errado com este comando xargs?

7

Considere a saída:

% { echo one; echo two; echo three; } | xargs -I{} -L1 echo test-{} 
test-{} one
test-{} two
test-{} three

Por que o {} não é substituído de acordo com a página de manual (e minha memória também)?

Como alterar a linha de comando para obter test-one , test-two , test-three linhas como saída?

    
por ulidtko 06.03.2012 / 14:43

3 respostas

8

Remova o -L 1 ; está implícito em -I (como diz a página man), mas ele seria substituído quando especificado posteriormente.

    
por 06.03.2012 / 14:51
4

Funciona sem "-L1", porque está implicitamente definido.

{ echo one; echo two; echo three; } | xargs -I{} echo test-{}
test-one
test-two
test-three
    
por 06.03.2012 / 14:54
1

Se você tem o link do GNU Paralelo instalado, você pode fazer isso:

{ echo one; echo two; echo three; } | parallel echo test-{}

Você pode instalar o GNU Parallel simplesmente por:

wget http://git.savannah.gnu.org/cgit/parallel.git/plain/src/parallel
chmod 755 parallel
cp parallel sem

Assista aos vídeos de introdução do GNU Parallel para saber mais: link

    
por 09.05.2012 / 22:32

Tags