Запуск нескольких заданий с уникальным именем с использованием qsub - PullRequest
0 голосов
/ 27 июня 2018

У меня есть куча текстовых (входных) файлов с именем

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.

Как это сделать bash?

1 Ответ

0 голосов
/ 27 июня 2018

Вы можете использовать cut как

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

, где

  • -d_ устанавливает символ разделителя на _ и
  • -f5 выбрать только 5-й столбец (т. Е. Номер работы)
...