BASH awk字段分隔符执行计算

Str*_*yk9 0 bash awk

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

(00:00)
(06:08)
(07:54)
Run Code Online (Sandbox Code Playgroud)

我已经完成了我的研究,以确定如何只采用那些时间(过滤掉所有其他的gunk),甚至使用awk分离它们.当我尝试添加数字时会发生此问题.我似乎得到一个数字0值...

我的代码如下:

cat somefile.txt | awk -F: '/([0-9][0-9]:[0-9][0-9])/{total+=$1}END{print total}'
Run Code Online (Sandbox Code Playgroud)

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

我正在尝试将左侧部分添加到一起,显然在这个示例中总共会产生13个.

真的希望我能找到一个解决方案,而且我确信这一点目前并不是我想到的.

Ken*_*ent 5

试试这一行:

awk -F'[(:]' '{h+=$2}END{print h}' file
Run Code Online (Sandbox Code Playgroud)

例:

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

编辑

[(:](我真想型:))定义了两个FS(字段分隔符)■ (: 太行会:

(06:08)
field 1 - ""
field 2 - 06
field 3 - 08)
Run Code Online (Sandbox Code Playgroud)

如果你只需要几分钟,你也需要添加)到你的FS,否则你得到$3了结局).