Como usar o GNU paralelo com gunzip

6

Eu tenho um diretório cheio de .gz , eu quero expandir cada arquivo em paralelo com o GNU paralelo. No entanto, eu não consegui nada.

Eu tentei

parallel 'gunzip {}' ::: 'ls *.gz'
parallel gunzip 'ls *.gz'

sem resultados, o bash diz:

/bin/bash: archive1.gz: command not found
...

O que estou fazendo de errado?

Obrigado

    
por gc5 08.06.2013 / 01:13

2 respostas

6

Eu encontrei este , que sugere o uso do --gnu flag:

parallel --gnu gunzip  ::: *gz

Se isso funcionar, você deve excluir /etc/parallel/config ou alterar seu conteúdo para --gnu em vez de --tollef (como root):

echo "--gnu" > /etc/parallel/config

Além disso, nunca analisa a saída de ls . , use globbing como acima ou find :

find . -name "*gz*" -print0 | parallel -q0 gunzip 
    
por 08.06.2013 / 16:59
0

Isso funciona:

   ls *.gz | parallel -t gunzip

O -t é opcional, mas é útil, pois mostra os comandos executados no stderr.

Não tenho certeza se você está fazendo algo errado ::: deve funcionar (é para ser equivalente), mas nem mesmo os exemplos na página de manual funcionam para mim.

Atualização: a bandeira --gnu faz funcionar como disse o Terdon.

    
por 08.06.2013 / 14:02