我正在尝试将作业数据从LSF
作业调度程序转换为主机和状态的汇总表。例如,这可能是一些示例数据:
$ bjobs -q normal -a -uall -o 'exec_host stat' -json
{
"COMMAND":"bjobs",
"JOBS":5,
"RECORDS":[
{
"EXEC_HOST":"compute-node-1",
"STAT":"RUN"
},
{
"EXEC_HOST":"compute-node-1",
"STAT":"DONE"
},
{
"EXEC_HOST":"compute-node-2",
"STAT":"RUN"
},
{
"EXEC_HOST":"compute-node-1",
"STAT":"EXIT"
},
{
"EXEC_HOST":"compute-node-2",
"STAT":"RUN"
},
我想要的输出如下所示:
RUN DONE EXIT
compute-node-1 1 1 1
compute-node-2 2
我可以使用datamash
通过一些非常笨拙的扭曲来实现这一点,但是将工作流最小化到bjobs
和jq
将显著提高可维护性。我正在努力想出一个方法来总结唯一的EXEC_HOST
/STAT
值。
在jq
中是否有一种方法可以如上所述总结这些数据?
1条答案
按热度按时间oaxa6hgo1#
使用您的输入,以下调用将生成TSV输出,如下所示:
你可以很容易地调整上面的,例如。如果你想更多的控制列的顺序。此外,您可能希望使用
@csv
而不是@tsv
等。