使用qsub运行具有唯一名称的多个作业

时间:2018-06-27 10:54:08

标签: bash hpc pbs

我有一堆名称为文本(输入)的文件

foo_bar_abc_1_01_geh_file.in
foo_bar_abc_1_02_geh_file.in
foo_bar_abc_1_03_geh_file.in
...
...
foo_bar_abc_1_1000_geh_file.in

我使用以下命令来运行这些多个作业(在HPC群集中)

for f in foo*.in; do qsub -N test -v infile=$f run.pbs

此单行脚本中的问题在于,队列中的所有作业的作业名称(集群中的名称)都相同(即test是所有作业的名称)。

我想为每个作业命名,例如test01,test02,test03 ... test1000(从相应文件名中提取/提取的数字。例如,

   #For foo_bar_abc_1_01_geh_file.in, the Job Name should be test01,   
   #For foo_bar_abc_1_02_geh_file.in, the Job Name should be test02,   
   #For foo_bar_abc_1_100_geh_file.in, the Job Name should be test100,
   etc.

这是怎么做的?

1 个答案:

答案 0 :(得分:2)

您可以像使用cut

for f in foo*.in; do qsub -N test$(echo $f|cut -d_ -f5) -v infile=$f run.pbs; done

其中

  • -d_将分隔符设置为_
  • -f5仅选择第5列(即工作编号)