linux - qstat 和长作业名称

我怎样才能让 qstat 给我完整的工作名称?

我知道 qstat -r 给出了关于任务的详细信息,但是它太多了,并且包括了资源需求。

qstat -r 输出如下:

 131806 0.25001 tumor_foca ajalali      qw    09/29/2014 15:49:41                                    1 2-100:1
       Full jobname:     tumor_focality-TCGA-THCA-ratboost_linear_svc
       Hard Resources:   distribution=wheezy (0.000000)
                         h_rt=72000 (0.000000)
                         mem_free=15G (0.000000)
                         h_vmem=15G (0.000000)
                         h_stack=256M (0.000000)
       Soft Resources:   
 131807 0.25001 vital_stat ajalali      qw    09/29/2014 15:49:41                                    1 2-100:1
       Full jobname:     vital_status-TCGA-LGG-ratboost_linear_svc
       Hard Resources:   distribution=wheezy (0.000000)
                         h_rt=72000 (0.000000)
                         mem_free=15G (0.000000)
                         h_vmem=15G (0.000000)
                         h_stack=256M (0.000000)
       Soft Resources:   

现在我唯一的选择是 grep 我需要的输出:

$ qstat -r | grep "Full jobname" -B1
--
 131806 0.25001 tumor_foca ajalali      qw    09/29/2014 15:49:41                                    1 2-100:1
       Full jobname:     tumor_focality-TCGA-THCA-ratboost_linear_svc
--
 131807 0.25001 vital_stat ajalali      qw    09/29/2014 15:49:41                                    1 2-100:1
       Full jobname:     vital_status-TCGA-LGG-ratboost_linear_svc

我可以做得更好以获得更好的输出吗?

最佳答案

这有点乱,但它可以作为命令历史记录中的简单解决方案。所有标准工具。输出与您从普通 qstat 调用中获得的输出几乎相同,但您不会获得 header :

单线:

qstat -xml | tr '\n' ' ' | sed 's#<job_list[^>]*>#\n#g' \
  | sed 's#<[^>]*>##g' | grep " " | column -t

命令说明:

将作业列为 XML:

qstat -xml

删除所有换行符:

tr '\n' ' '

在列表中的每个作业条目之前添加换行符:

sed 's#<job_list[^>]*>#\n#g'

删除所有 XML 内容:

sed 's#<[^>]*>##g'

最后添加换行符:

grep " "

列:

column -t

示例输出

351996  0.50502  ProjectA_XXXXXXXXX_XXXX_XXXXXX                user123  r   2015-06-25T15:38:41  xxxxx-sim01@xxxxxx02.xxxxx.xxx  1
351997  0.50502  ProjectA_XXX_XXXX_XXX                         user123  r   2015-06-25T15:39:26  xxxxx-sim01@xxxxxx23.xxxxx.xxx  1
351998  0.50502  ProjectA_XXXXXXXXXXXXX_XXXX_XXXX              user123  r   2015-06-25T15:40:26  xxxxx-sim01@xxxxxx14.xxxxx.xxx  1
351999  0.50502  ProjectA_XXXXXXXXXXXXXXXXX_XXXX_XXXX          user123  r   2015-06-25T15:42:11  xxxxx-sim01@xxxxxx19.xxxxx.xxx  1
352001  0.50502  ProjectA_XXXXXXXXXXXXXXXXXXXXXXX_XXXX_XXXX    user123  r   2015-06-25T15:42:11  xxxxx-sim01@xxxxxx11.xxxxx.xxx  1
352008  0.50501  runXXXX69                                     usr1     r   2015-06-25T15:49:04  xxxxx-sim01@xxxxxx17.xxxxx.xxx  1
352009  0.50501  runXXXX70                                     usr1     r   2015-06-25T15:49:04  xxxxx-sim01@xxxxxx01.xxxxx.xxx  1
352010  0.50501  runXXXX71                                     usr1     r   2015-06-25T15:49:04  xxxxx-sim01@xxxxxx06.xxxxx.xxx  1
352011  0.50501  runXXXX72                                     usr1     r   2015-06-25T15:49:04  xxxxx-sim01@xxxxxx21.xxxxx.xxx  1
352012  0.50501  runXXXX73                                     usr1     r   2015-06-25T15:49:04  xxxxx-sim01@xxxxxx13.xxxxx.xxx  1
352013  0.50501  runXXXX74                                     usr1     r   2015-06-25T15:49:04  xxxxx-sim01@xxxxxx11.xxxxx.xxx  1

https://stackoverflow.com/questions/26104116/

相关文章:

c - Linux内核代码中的 "EXPORT_SYMBOL"是什么意思?

linux - 使用 Linux 加载程序时 ldconfig 错误 :"is not a symb

linux - 应用程序如何在运行时解析为不同版本的共享库?

linux - 当我在脚本中使用它时,无法关闭带有 echo "^]"的 scpi(telnet)

linux - 跨多台计算机管理用户配置文件

linux - 在家学习内核黑客和嵌入式开发?

linux - 让 Tk 看起来像一个原生 Linux 应用程序

linux - 需要对 Linux bash 内置 exec 命令行为的解释

linux - RealUID,保存的 UID,有效的 UID。这是怎么回事?

c - 为什么在 Linux 中使用 select