LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 745|回复: 3

脚本求教,列输出

[复制链接]
发表于 2006-6-14 03:33:50 | 显示全部楼层 |阅读模式
文件为
Job <20370>,
                     nd <#BSUB -o screen.csv;#BSUB -e error.out;#BSUB -n 2;NPRO
                     C=2;RUNDIR=abc;echo $RUNDIRROG=DLP
                     OLY-X.X;rm -f $RUNDIR/nodes_lsf;for host in $LSB_HOSTS;do
                     ;echo $host >> $RUNDIR/nodes_lsf;done;mpirun -v -np $NPROC
                     -ma>

Job <20379>,
                     nd <#BSUB -o screen.csv;#BSUB -e error.out;#BSUB -n 2;NPRO
                     C=2;RUNDIR=abcdROG=DLPOLY.X;rm -f $RUND
                     IR/nodes_lsf;for host in $LSB_HOSTS;do ;echo $host >> $RUN
                     DIR/nodes_lsf;done;mpirun -v -np $NPROC -machinefile $RUND
                     IR/n>

Job <20393>,
                     nd <#BSUB -o screen.csv;#BSUB -e error.out;#BSUB -n 2;NPRO
                     C=2;RUNDIR=abcdeROG=DLPOLYCLARK.X;rm -f  
                     $RUNDIR/nodes_lsf;for host in $LSB_HOSTS;do ;echo $host >>
                     $RUNDIR/nodes_lsf;done;mpirun -v -np $NPROC -machinefile $
                     RUN>

Job <20394>,
                     nd <#BSUB -o screen.csv;#BSUB -e error.out;#BSUB -n 2;NPRO
                     C=2;RUNDIR=abcdef;echo $RUNDIRROG=DLPOL
                     YCLARK.X;rm -f $RUNDIR/nodes_lsf;for host in $LSB_HOSTS;do
                     ;echo $host >> $RUNDIR/nodes_lsf;done;mpirun -v -np $NPROC
                     -m>

Job <20391>,
                     nd <#BSUB -o screen.csv;#BSUB -e error.out;#BSUB -n 2;NPRO
                     C=2;RUNDIR=abcdefg;echo $RUNDIRR
                     OG=DLPOLYISO;rm -f $RUNDIR/nodes_lsf;for host in $LSB_HOST
                     S;do ;echo $host >> $RUNDIR/nodes_lsf;done;mpirun -v -np $
                     NPRO>

Job <20384>,
                     nd <#BSUB -o screen.csv;#BSUB -e error.out;#BSUB -n 2;NPRO
                     C=2;RUNDIR=abcdefgh;echo $RUNDIR;
                     PROG=DLPOLYISO;rm -f $RUNDIR/nodes_lsf;for host in $LSB_HO
                     STS;do ;echo $host >> $RUNDIR/nodes_lsf;done;mpirun -v -np
                     $NP>

我现在得到两个变量
path=`bjobs -l | grep "RUNDIR=" | awk 'BEGIN { FS=";" } { print $2 } '`
jnum=`bjobs -l | grep "^Job" | sed -e 's/[^0-9]//g'`
得到了路径名和任务号
路径名为
RUNDIR=abc
RUNDIR=abcd
RUNDIR=abcde
RUNDIR=abcdef
RUNDIR=abcdefg
RUNDIR=abcdefgh

任务号为
20370
20379
20393
20394
20391
20384

我怎么才能把上面输出并列起来,如下所示
20370  RUNDIR=abc
20379  RUNDIR=abcd
20393  RUNDIR=abcde
20394  RUNDIR=abcdef
20391  RUNDIR=abcdefg
20384  RUNDIR=abcdefgh

谢谢!
发表于 2006-6-15 11:00:48 | 显示全部楼层
重定向到文件f1,f2  
paste f1 f2

这样符合要求不?:)
回复 支持 反对

使用道具 举报

发表于 2006-6-15 15:53:25 | 显示全部楼层
笨办法:
用awk 造个行号在里面
echo $path|awk '{print NR" "$1}'>1.tmp
echo $jnum|awk '{print NR" "$1}'>2.tmp
join 1.tmp 2.tmp|awk '{print $2" "$3}'
rm -rf 1.tmp 2.tmp
回复 支持 反对

使用道具 举报

发表于 2006-6-16 17:35:07 | 显示全部楼层
I have a idea. Maybe you will like it.

  1. $ echo $path
  2. RUNDIR=abc RUNDIR=abcd RUNDIR=abcde RUNDIR=abcdef RUNDIR=abcdefg RUNDIR=abcdefgh
  3. $ echo $jnum
  4. 20370 20379 20393 20394 20391 20384
  5. $ read -a var <<<$path
  6. $ read -a key <<<$jnum
  7. $ for n in $(seq 0 $((${#var[*]} - 1))); do echo ${key[$n]} ${var[$n]}; done
  8. 20370 RUNDIR=abc
  9. 20379 RUNDIR=abcd
  10. 20393 RUNDIR=abcde
  11. 20394 RUNDIR=abcdef
  12. 20391 RUNDIR=abcdefg
  13. 20384 RUNDIR=abcdefgh

复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表