繁体   English   中英

转换口头记账输出

[英]Convert slurm accounting output

我正在寻找一种方法来使经过的时间输出始终包括天数,目前还无法定义输出格式,因此我正在考虑使用cut,awk,sed或类似命令在生成输出后执行此操作。

因此,我有任何想法可以更改输出,例如:

JobID|Partition|User|State|Elapsed|
902464|interactive-a|bob|COMPLETED|10-00:10:40
968491|interactive-a|bob|COMPLETED|12:49:20
970801|interactive-a|sam|COMPLETED|07:00:46
912973|interactive-a|tom|COMPLETED|41-02:34:41
971356|interactive-a|mat|COMPLETED|04:36:35
971912|interactive-a|mat|COMPLETED|02:12:02
972668|interactive-a|mat|COMPLETED|00:09:06

转换成这种格式(最后一列在需要时添加了0-)

JobID|Partition|User|State|Elapsed|
902464|interactive-a|bob|COMPLETED|10-00:10:40|
968491|interactive-a|bob|COMPLETED|0-12:49:20|
970801|interactive-a|sam|COMPLETED|0-07:00:46|
912973|interactive-a|tom|COMPLETED|41-02:34:41|
971356|interactive-a|mat|COMPLETED|0-04:36:35|
971912|interactive-a|mat|COMPLETED|0-02:12:02|
972668|interactive-a|mat|COMPLETED|0-00:09:06|

谢谢

$ sed 's/|\([0-9:]\{1,\}\)$/|0-\1/' file
JobID|Partition|User|State|Elapsed|
902464|interactive-a|bob|COMPLETED|10-00:10:40
968491|interactive-a|bob|COMPLETED|0-12:49:20
970801|interactive-a|sam|COMPLETED|0-07:00:46
912973|interactive-a|tom|COMPLETED|41-02:34:41
971356|interactive-a|mat|COMPLETED|0-04:36:35
971912|interactive-a|mat|COMPLETED|0-02:12:02
972668|interactive-a|mat|COMPLETED|0-00:09:06

在awk中:

$ awk -F\| '$5 ~ /-|E/ || ($5 = "0-" $5) && gsub(/ /,"|")' file
  • -F\\| FS设置为|
  • $5 ~ /-|E/比赛和与打印记录- OR E在五分场
  • || 逻辑或,即 如果以前的不匹配,则:
  • ($5 = "0-" $5)在第5个字段前加0-
  • && gsub(/ /,"|")和替换用的那些空间置换字段分隔符| 秒。
  • 如果-v OFS="|"则可以删除上面的内容 使用:

    $ awk -v OFS = \\ | -F \\ | '$ 5〜/-| E / || ($ 5 =“ 0-” $ 5)'文件

    $ awk -v OFS = \\ | -F \\ | '$ 5〜/-| E / || ($ 5 =“ 0-” $ 5)'文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM