gpt4 book ai didi

regex - 解析 ps 的 "etime"输出并将其转换为秒

转载 作者:IT王子 更新时间:2023-10-29 00:22:36 25 4
gpt4 key购买 nike

这些是 ps h -eo etime 可能的输出格式

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

如何将它们解析成秒?

  • 请假设天部分至少为 3 位数字,因为我不知道它可以有多长。
  • 输出将被 egreped 到只有一行,因此不需要循环。

最佳答案

另一个 bash 解决方案,适用于任意数量的字段:

ps -p $pid -oetime= | tr '-' ':' | awk -F: '{ total=0; m=1; } { for (i=0; i < NF; i++) {total += $(NF-i)*m; m *= i >= 2 ? 24 : 60 }} {print total}'

解释:

  1. 替换-:这样字符串就变成了1:2:3:4代替'1-2:3:4',总计为0,乘数为1
  2. 拆分为:,从最后一个字段(秒)开始,乘以 m = 1,加上总秒数,m 变为 60(一分钟内的秒数)
  3. 加上分钟字段乘以60,m变成3600
  4. 增加小时数 * 3600
  5. 增加天数 * 3600 * 24

关于regex - 解析 ps 的 "etime"输出并将其转换为秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14652445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com