переименование выходных файлов с номером итерации и ввод с помощью параллели gnu - PullRequest
0 голосов
/ 02 октября 2018

У меня есть список файлов (data1.txt, ..., data6.txt), и я хочу запускать для них одни и те же команды 3 раза в качестве примера.Я использую GNU параллельно

Я хочу в качестве выходных файлов: 1data1.txt, 2data1.txt, 3data1.txt, ... , 2data6.txt, 3data6.txt.

Я пытался:

for i in $(seq 3); do parallel -j 8 'myCommand data{}.txt > results/out/{$i}data{}.txt' ::: 1 2 3 4 5 6; done

, но мои выходные файлы: {}data1.txt, ...., {}data6.txt

Я пробовал разные возможности, но у меня нет ожидаемых результатов

Спасибо за вашу помощь

1 Ответ

0 голосов
/ 03 октября 2018

Используйте возможность создания комбинаций в GNU Parallel:

parallel -j 8 myCommand data{2}.txt '>' results/out/{1}data{2}.txt' ::: 1 2 3 ::: 1 2 3 4 5 6

Если в вашем процессоре 8 потоков, вы можете пропустить -j8.Это хорошая идея, если вы позже собираетесь запустить ее на более крупной системе.

Вы также можете использовать --results (требуется версия> 20170222):

parallel --results results/out/{1}data{2}.txt myCommand data{2}.txt ::: 1 2 3 ::: 1 2 3 4 5 6 >/dev/null
...