0

我基本上有一个包含数据的文本文件,其中包含这种格式的时间

(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 个。

真的希望我能找到解决方案,而且我敢肯定,目前我并没有完全想到这个问题。

4

1 回答 1

5

试试这一行:

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了结尾)

于 2013-04-06T21:42:30.360 回答