为什么这个并行过程不将输出写入文件,而是打印到控制台?

罗曼·卢斯特里克(Roman Lustrik)

免责声明:这是我在biostars.org上问到的有关并行和写入文件的一个更普遍的问题

当我顺序运行一个程序(obisplit来自obitoolspackage)时,它会读取一个文件并根据原始文件中的某个条件(此处不重要)创建多个文件:

input_file.fastq
     |____ output_01.fastq
     |____ output_02.fastq
     |____ output_03.fastq

但是,当我分割输入文件并并行运行它们时(来自ubuntu repo的版本:20141022),

find . * | grep -P "^input_file" | parallel -j+3 obisplit -p output_{/.}_ -t variable_to_split_on {/}

我希望得到文件

input_file_a.fastq
     |____ output_input_file_a_01.fastq
     |____ output_input_file_a_02.fastq
     |____ output_input_file_a_03.fastq
input_file_b.fastq
     |____ output_input_file_b_01.fastq
     |____ output_input_file_b_02.fastq
     |____ output_input_file_b_03.fastq
input_file_c.fastq
     |____ output_input_file_c_01.fastq
     |____ output_input_file_c_02.fastq
     |____ output_input_file_c_03.fastq

但是输出仅打印到控制台。

是否存在某种内在的parallel因素导致该打印正常进行,或者这可能obisplit是出于某种原因的行为方式有没有办法说服每个核心命令parallel打印到特定文件而不是控制台?

奥莱·丹吉(Ole Tange)

obisplit如果重定向输出,则听起来好像行为有所不同。

您可以要求GNU Parallel输出到文件:

seq 10 | parallel --results output_{} echo this is input {} >/dev/null

(或者,如果您的版本较旧:

seq 10 | parallel echo this is input {} '>' output_{}

它会创建output_#output_#.erroutput_#.seq

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么不将此行打印到控制台?

为什么这不将 console.log(score) 打印到控制台?

为什么Gson会漂亮地打印到控制台,而不打印到文件?

为什么 MySQL 在打印到控制台/重定向到文件时会有不同的输出

为什么Python在print()输出之前将异常打印到控制台

为什么这些goroutine无法打印到控制台?

从bash并行运行多个脚本,而无需将输出打印到控制台

为什么将这个chai-as-promise AssertionError打印到控制台,但不打印到我的Mocha测试运行程序?

将控制台输出写入文件

如何使用ImageMagick“转换”工具将输出文件名打印到控制台?

用于在不同线程上同时将输出打印到控制台和文件的命令

Java IO-从控制台将递归函数的输出打印到.txt文件

将控制台输出打印到文本文件

将python控制台输出打印到Qtextedit

DBeaver + Postgres:调试功能打印到输出/控制台

XmlWriter打印到控制台时输出意外的编码

将输出打印到Chrome控制台

在Codeception中将调试输出打印到控制台

如何在过程运行时(C ++ / Boost.Process)期间捕获标准输出并打印到控制台和文件

写入CON(Windows控制台)不会打印到STDOUT(控制台)

从文件打印到控制台和其他文件

重新启动后,为什么我的守护进程无法打印到控制台?

为什么Java中的System.out.println()打印到控制台?

为什么Mybatis Force将log4j DEBUG信息打印到控制台

为什么我的数组返回的方法无法打印到控制台?

为什么Spring Boot Batch应用程序无法打印到控制台?

为什么在以下代码中将320.04号打印到控制台?

为什么此常量无法打印到控制台?它只是空白

为什么异常方法的 printstacktrace() 在调用时不打印到控制台?