在gnu并行文件I/O.

Neh*_*kar 2 parallel-processing file-io gnu-parallel

我有一个程序只需一个参数.我正在使用gnu parallel来对此参数执行参数扫描.每次运行都会生成一个结果,我想将所有结果附加到单个文件中,比如Results.txt.

这样做的正确方法是什么?

我不应该让每个实例打开文件并写入它,因为这可能会产生冲突并且还会破坏结果的顺序.我能想到这样做的唯一方法是让每个运行在具有唯一名称的文件中生成其输出,然后,当gnu并行完成运行时,使用脚本将结果合并到单个文件中.

  1. 有没有更简单的方法来实现这一目标?
  2. 当多个实例写入/读取同一文件时会发生什么?gnu并行创建多个副本,每个实例一个副本,就像stdout和stderror一样吗?

谢谢

Ole*_*nge 8

如果您的命令将结果发送到stdout(标准输出),则解决方案很简单:

seq 1000 | parallel echo > Results.txt
Run Code Online (Sandbox Code Playgroud)

GNU Parallel保证输出不会混合.