我有一堆名称为文本(输入)的文件
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.
这是怎么做的?
答案 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列(即工作编号)