Предположим, что my_prog
может считывать данные из стандартного ввода и посылать данные на стандартный вывод, и что он принимает один аргумент (ins.fa
):
parallel --pipepart -a in.fa --block 3M Python my_prog ins.fa > out.fa
Если my_prog
не может читать из стандартного ввода, а от имени трубы (ФИФО) это будет работать:
parallel --fifo --pipepart -a in.fa Python my_prog {} ins.fa > out.fa
Если my_prog
не может читать из FIFO, но только сам файл, это будет работать:
parallel --cat --pipepart -a in.fa Python my_prog {} ins.fa > out.fa
Если my_prog
не может выводить на стандартный вывод, но может выводить на ФИФО часто можно использовать:
parallel --cat --pipepart -a in.fa Python my_prog {} ins.fa {#}.out /dev/stdout > out.fa
Или:
parallel --cat --pipepart -a in.fa Python my_prog {} ins.fa {#}.out '>(cat)' > out.fa
Если my_prog
не может выводить на ФИФО, вам нужно вывести его в файл с уникальным именем, который вы можете затем cat
и удалить. Здесь мы используем порядковый номер для создания уникального файла.
parallel --cat --pipepart -a in.fa Python my_prog {} ins.fa {#}.out '; cat {#}.out; rm {#}.out' > out.fa
Вы действительно должны рассмотреть возможность прохождения учебника. Он ответит на это и так много вопросов: мужчина parallel_tutorial
нет! это не мой вопрос. Я хочу разбить свой файл IN.fa на подфайлы в блоке 3M, так как они сравниваются с ins.fa и каждый раз дает мне результат в отдельном файле. – midox