У меня есть файл со списком путей. например:Параллельное выполнение задания, которое принимает несколько входов в Linux
/Работа/пользователь/1007/GVFS/кого-л-доля: сервер = xeonator, доля = с/Результаты/нормалей/8_mo/CNMC_N_191/ /Работа/пользователь/1007/GVFS/кого-л-доля : сервер = xeonator, доля = с/Результаты/нормалей/8_mo/204-196/
у меня есть программа (назовем его 'прога'), который принимает 3 параметра, 2 входные имена файлов и 1 выходного файла. Нормальное исполнение:
prog ~/A.txt ~/B.txt ~/out.txt
Я хочу, чтобы выполнить параллельно свою программу с параметрами, построенных на основе каждой строки файла, например:
prog /run/user/1007/gvfs/smb-share:server=xeonator,share=c/Results/Normals/8_mo/CNMC_N_191/A.txt /run/user/1007/gvfs/smb-share:server=xeonator,share=c/Results/Normals/8_mo/CNMC_N_191/B.txt /run/user/1007/gvfs/smb-share:server=xeonator,share=c/Results/Normals/8_mo/CNMC_N_191/out.txt
prog /run/user/1007/gvfs/smb-share:server=xeonator,share=c/Results/Normals/8_mo/204-196/A.txt /run/user/1007/gvfs/smb-share:server=xeonator,share=c/Results/Normals/8_mo/204-196/B.txt /run/user/1007/gvfs/smb-share:server=xeonator,share=c/Results/Normals/8_mo/204-196/out.txt
Я пытался использовать xargs и GNU параллельно, но Я не могу создать правильную командную строку для этих инструментов. Вот моя попытка:
cat ListPaths.txt | xargs -I '{}' -n 1 -P 8 ./SkullSegmenter/SkullSegmenter '{}'A.txt '{}'B.txt '{}'out.txt
Но это не дает правильных аргументов. Может кто-то помочь мне с этим?
Я переформатировать свой список в полные команды, и использовать ответ от этого вопроса : http://stackoverflow.com/questions/11488184/how-can-i-run-a-list-of-commands-in-parallel –
Это не сработало ни –