linux - 如何从 awk 语句添加时间格式 hh :mm. ss

标签 linux bash awk fedora

我正在使用 awk 获取所有第 7 个字段,并用逗号分隔。

1,root,init,20,0.0,0.1,0:01.78
1008,root,migration/0,1,2.0,1.8,7:04.32
26542,peter.ca,top,20,1.9,0.1,5:42.78
18776,john.sel,awk,15,0.2,0.0,0:01.00
49841,murray.s,topsum,16,1.3,0.1,0:02.11
29806,peter.ca,bash,20,0.1,0.0,0:00.03
9845,murray.s,awk,18,0.5,0.2,0:14.01
6549,peter.ca,topsum,16,1.4,0.2,0:04.81
18746,john.sel,bash,20,0.1,0.0,0:00.50
24987,john.bel,who,20,3.0,1.1,0:00.01
5,root,watchdog/0,1,0.0,0.0,0:00.00
29874,murray.s,timeon,20,0.1,0.2,0:02.15


cat data.top | grep root | awk 'BEGIN { FS = "," } ; { print $7 }'

输出:

0:01.78
7:04.32
0:00.00

我正在尝试将这些加在一起(我还假设总数将少于 24 小时,所以这不是问题)。

提前致谢。

最佳答案

$ awk -F, '/root/{split($7, t, ":"); sum+=60*t[1]+t[2]}; END{print sum}' input.txt
426.1

$ date -ud @426.1 +%T.%N | sed 's/0*$//'
00:07:06.1

关于linux - 如何从 awk 语句添加时间格式 hh :mm. ss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9985810/

相关文章:

c - 为什么客户端调用shutdown(sockfd, SHUT_RD)后,客户端程序中的recv()可以接收到发送给客户端的消息?

regex - 解析 .ssh/config 以获取代理信息

bash - 使用 wget 从 anonfiles 获取文件

linux - 使用 Linux 将预告片添加到 csv

linux - 是否有必要使用 deconf 在 debian 软件包中获取用户输入

python - 如何判断文件是否正在从 Linux 写入 Windows CIFS 共享

php - 使用php在linux中读取图像文件

linux - 我如何添加到此命令以通过新终端弹出一条消息来制作 "notifications"?

linux - 如何计算存档文件夹中文件的一些数据?

full-text-search - 在文件夹中查找文本的最快方法