我是 AWK 的新手,我正在努力为我的问题找出答案。我有一个包含以下值的平面文件:
403 | SanMateo | f | 2015-04-09 18:50:24.38
403 | SanMateo | t | 2015-04-09 18:45:24.36
403 | SanMateo | t | 2015-04-09 18:40:24.383
403 | SanMateo | f | 2015-04-09 18:35:24.357
403 | SanMateo | t | 2015-04-09 18:30:24.355
404 | RedwoodCity| f | 2015-04-09 18:35:50.308
404 | RedwoodCity| t | 2015-04-09 18:30:50.242
404 | RedwoodCity| f | 2015-04-09 18:25:50.245
404 | RedwoodCity| t | 2015-04-09 18:20:50.242
404 | RedwoodCity| f | 2015-04-09 18:15:50.242
我想使用 awk 比较当前行的 $1 和下一行的 $1,以及 $3 ~/f/. 如果语句为真,则从当前行的 $4 中减去下一行的 $4,并将差值写入当前行的新列,如果为假,则不执行任何操作。我到目前为止是这样的:
awk 'BEGIN {FS="|";} {if (NR $1 ~ NR++ $1 && $3 ~ /f/) subtract = NR $4 - NR++ $4; {print subtract}}' allHealthRecords_Sorted
显然那是行不通的。有人可以帮忙吗?