[英]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.