gnu paralelo sem script de argumento

2

Desculpe, sei que a resposta está aí, mas a sintaxe me ilude e esperava por alguma ajuda.

Eu tenho 4 núcleos e 4 arquivos de script python preprocess0.py , preprocess1.py , preprocess2.py , preprocess3.py . Eu gostaria de executar esses 4 processos em paralelo usando o GNU parallel . Eu não tenho arquivos de entrada. O arquivo de entrada é codificado dentro de cada arquivo *.py (é somente leitura, então está tudo bem). Gostaria de enviar os resultados para um file0.csv ... file3.csv files. Isso é tanto quanto eu cheguei:

parallel -j4 --progress python preprocess*.py ::: '>' ./file{}.csv

Mas apenas fica lá sem escrever nada, como se esperasse por alguma entrada. Alguém poderia me ajudar?

    
por Dervin Thunk 29.05.2015 / 16:50

1 resposta

2

A sintaxe é:

parallel -j4 --progress 'python {} > ./file{}.csv' ::: preprocess*.py

Isso criaria arquivos chamados filepreprocess1.py.csv ... Você poderia usar

parallel -j4 --progress 'python {} > ./file{#}.csv' ::: preprocess*.py

em vez disso, use o número do trabalho e obtenha alguns arquivos file1.csv .... Ou se você quiser extrair o número para os nomes dos arquivos:

parallel -j4 --progress 'python {} > ./file{=s/[^\d]//g=}.csv' ::: preprocess*.py
    
por 29.05.2015 / 17:49