BASH awk字段分隔符执行计算



我有一个包含时间的文本文件格式为

(00:00)
(06:08)
(07:54)

我已经做了我的研究来确定如何只占用这些时间(过滤掉所有其他的垃圾),甚至使用awk将它们分开。当我试图将数字相加时,出现了这个问题。我似乎得到一个个位数的0值…

我的代码如下:
cat somefile.txt | awk -F: '/([0-9][0-9]:[0-9][0-9])/{total+=$1}END{print total}'

注意:我使用括号是因为文件包含其他时间,而不是包含在括号中…所以我试图摆脱不需要的数据,只留下我上面的部分(00:00)

我试图把左边的部分加在一起,显然在这个例子中,结果应该是13。

我真的希望我能找到一个解决方案,我肯定这是我现在没有想到的事情。

try this line:

awk -F'[(:]' '{h+=$2}END{print h}' file

的例子:

kent$  echo "(00:00)
(06:08)
(07:54)"|awk -F'[(:]' '{h+=$2}END{print h}' 
13

编辑

[(:](我真的想输入:))定义了两个FS(字段分隔符)(:,因此行将是:

(06:08)
field 1 - ""
field 2 - 06
field 3 - 08)

如果你只想得到分钟,你需要添加)到你的FS,否则你得到$3与结束)

最新更新