字符串拼接

#!/bin/bash
# SLURM_NODELIST=n[03495-03498]
# SLURM_JOB_CPUS_PER_NODE=4,56(x2),50

# 把这两个环境变量转换一下,转成 
# mp_host_list=[['n03485',4],['n03496',56],['n03497',56],['n03498',50]]
SLURM_JOB_CPUS_PER_NODE="4,56(x3),50(x2)"
SLURM_NODELIST="n[03495-03500]"
min=`echo "$SLURM_NODELIST" | sed -r "s/n\[([0-9]+)\-[0-9]+\]/\1/"`
max=`echo "$SLURM_NODELIST" | sed -r "s/n\[[0-9]+\-([0-9]+)\]/\1/"`
array1=()
for i in `seq $min $max`;do
  i=`printf "%05d\n" $i` 
  array1[${#array1[*]}]=$i 
done



array2=( ${SLURM_JOB_CPUS_PER_NODE//,/ } )
array3=()
for i in ${array2[@]};do 
  if [[ "$i" =~ "x"  ]];then
     num=`echo $i |  sed -r "s/[0-9]+\(x([0-9]+)\)/\1/"`
     ele=`echo $i | sed -r "s/([0-9]+)\(x[0-9]+\)/\1/"`
     for j in `seq 1 $num`;do
	  array3[${#array3[*]}]=$ele
     done	     
  else
     array3[${#array3[*]}]=$i
  fi	  
done
(( len=${#array1[@]}-1 ))
array4=()
for i in `seq 0 $len `;do

  res="['n${array1[$i]}',${array3[$i]}]"
  array4[${#array4[*]}]=$res


done

str="["$(IFS=,; echo "${array4[*]}")"]"
echo $str
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值