Parse ps' “etime” output and convert it into seconds

后端 未结 14 2070
难免孤独
难免孤独 2020-12-30 12:43

These are possible output formats for ps h -eo etime

21-18:26:30
   15:28:37
      48:14
      00:01

How to parse them into se

14条回答
  •  -上瘾入骨i
    2020-12-30 13:24

    Here's mine Perl one liner:

    ps -eo pid,comm,etime | perl -ane '@t=reverse split(/[:-]/,$F[2]); $s=$t[0]+$t[1]*60+$t[2]*3600+$t[3]*86400; print "$F[0]\t$F[1]\t$F[2]\t$s\n"'
    

    Undefined values are rendering to zero, so they won't have effect on the sum of seconds.

提交回复
热议问题