【发布时间】:2014-01-18 05:29:41
【问题描述】:
我有一个逗号分隔的文件,其中一个字段包含以下格式的日期时间:
2014 年 1 月 15 日 13:53
我需要将此字段的时间部分向下舍入到最接近的一刻钟。我可以让 awk 仅使用日期/时间作为输入来执行舍入,但我无法让 awk 读取文件并执行舍入。这是用于将日期/时间四舍五入作为直接输入的 awk 命令:
echo "04/17/2014 12:59" | awk '{split($2, a, ":"); printf "%s %s:%02d", $1, a[1],int(a[2]/15)*15}'
我将如何使用整个文件作为输入来执行相同的舍入,其中日期/时间是逗号分隔文件中的第三个字段?
【问题讨论】:
-
基本相同。您仍然可以使用您的
split对:之后的部分进行操作,主要区别在于您想要拆分$3字段并且您想要将您的结果a[1],int(...)分配回$3然后print. -
@EtanReisner 您如何将结果分配回 $3。类似 - $3=printf .... 还是需要将其括在 () 中?
-
基本上就像我说的:
$3=a[1],int(...).