这是问题所在,我想计算一下我在 hpc 中拥有的工作数量,但这不是现成的功能之一。所以我做了这个简单的脚本
squeue -u user_name | wc -l
wheresqueue
打印所有作业,如下所示
> squeue -u user_name
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
8840441 theory cteq fxm PD 0:00 1 (Resources)
8840442 theory cteq fxm PD 0:00 1 (Priority)
8840443 theory cteq fxm PD 0:00 1 (Priority)
8840444 theory cteq fxm PD 0:00 1 (Priority)
这将被输送到wc
并计算行数。但是,第一行不是作业的条目。计数时如何指示wc
跳过第一行?还是我应该只取它的输出wc
和减一?
提前致谢!
squeue
您可以使用- 选项抑制标题行-h
。这将消除删除第一行的需要。从squeue 的手册页:
有很多方法可以做到这一点,我首先想到的是:
从手册页
tail
:所以你 -n +2 应该跳过第一行。
你也可以使用tail的排序形式:
tail +2
纯娱乐。您可以从 wc 输出中减去 1
或者
当您使用 awk 时,您可以使用 awk 计算行数,因此避免使用 wc
END 表示,在读取所有行之后执行以下块,NR 表示到目前为止读取的行数。
实际上有几种方法可以达到相同的结果。另一种方法是将序列命令的输出通过管道传输到 sed,如下所示
squeue -u user_name | sed '1d' | wc -l