gpt4 book ai didi

linux - AWK 将分秒转换为仅秒

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:47:24 25 4
gpt4 key购买 nike

我有一个文件,我正试图将其转换为几秒钟。它看起来像这样:

49.80
1:03.40
1:01.00
1:00.40
1:01.00

我试过:

awk -F: '{seconds=($1*60);seconds=seconds+$2;print seconds}' file

哪些输出:

2988
63.4
61
60.4
61

我也试过:

sed 's/^/:/g' file | awk -F: '{seconds=($2*60);seconds=seconds+$3;print seconds}'

输出与结果相同。我想获得这些结果:

49.80
63.4
61
60.4
61

最佳答案

只需检查记录是否同时包含秒和分钟

awk -F: 'NF==1; NF==2{seconds=($1*60);seconds=seconds+$2;print seconds}'
  • NF 每条记录(行)中的字段数。

  • NF==1 如果它只包含一个字段,我们将不会进行任何计算。看到没有与此检查关联的 {action} 部分。因此 awk 执行打印整行的默认操作

  • NF==2 如果字符串包含 2 个字段,则为真。采取执行计算的关联操作。

测试

$ awk -F: 'NF==1; NF==2{seconds=($1*60);seconds=seconds+$2;print seconds}' file
49.80
63.4
61
60.4
61

关于linux - AWK 将分秒转换为仅秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30826401/

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