Bash 如何使用qsub向集群提交cat命令并正确使用管道

Bash 如何使用qsub向集群提交cat命令并正确使用管道,bash,unix,cluster-computing,cat,qsub,Bash,Unix,Cluster Computing,Cat,Qsub,我想使用qsub动态地向集群提交几个“cat作业”。目前,我正在使用cat将多个文件连接到命令末尾的单个文件(使用>output\u file)。 问题是qsub将命令中的>output_文件作为qsub的一部分,将作业日志放在那里,而不是cat输出 qsub -b y -cwd -q bigmem cmd1 其中cmd1看起来像: cat file1 file2 filen > output_file 当作业通过pbs运行时,stdout被重定向到作业的输出文件,因此执行此操作的方法

我想使用qsub动态地向集群提交几个“cat作业”。目前,我正在使用cat将多个文件连接到命令末尾的单个文件(使用
>output\u file
)。 问题是qsub将命令中的>output_文件作为qsub的一部分,将作业日志放在那里,而不是cat输出

qsub -b y -cwd -q bigmem cmd1
其中
cmd1
看起来像:

cat file1 file2 filen > output_file

当作业通过pbs运行时,stdout被重定向到作业的输出文件,因此执行此操作的方法是编写脚本:

#!/bin/bash
cat file1 file2 ... filen
您不需要将输出重定向到文件,因为mom守护进程将在设置作业时为您执行此操作,您只需要使用-o指定所需的输出文件。例如,如果您将上面的脚本命名为script.sh(确保它是可执行的),您将提交:


qsub script.sh-b y-q bigmem-o输出文件

如果您的代码是一次性的,则可以使用
echo

echo "cat file1 file2 ... filen > outfile" | qsub -cwd <options>
echo“cat file1 file2…filen>outfile”| qsub-cwd

您的意思是想通过qsub将文件1和文件2作为单个作业脚本文件提交吗?不,我想使用cat连接所有文件(文件1到文件n),并将其存储在另一个文件中。我要用大文件做几百次。这就是我使用集群的原因。
cat
的关键在于它连接了许多文件。将单个文件的内容打印到
stdout
cat
的常见用法。因此,您的命令应该是
cat file1 file2。。。文件名