我想通过在文本文件的第三个字段之后插入递增的算术变量(从 5 到 25)将字段(从第 4 个到最后一个字段)打印为新行。
数据格式:
01.01.1995 01:00 1.0 1.2 2.5 3 4.8 5.2
31.01.1995 23.00 31.0 2.3 7.5 8.7 8.7 10
.
awk '{for(i=5;i<=25;i+=5) print $1,$2,$3,i,$(3+i/5)}'
期望的输出:
01.01.1995 01.00 1.0 5 1.2
01.01.1995 01.00 1.0 10 2.5
01.01.1995 01.00 1.0 15 3
01.01.1995 01.00 1.0 20 4.8
01.01.1995 01.00 1.0 25 5.2
31.01.1995 23.00 31.0 5 2.3
31.01.1995 23.00 31.0 10 7.5
31.01.1995 23.00 31.0 15 8.7
31.01.1995 23.00 31.0 20 8.7
31.01.1995 23.00 31.0 25 10
所需输出 2:
01.01.1995 01.00 1.0 5 5.2
01.01.1995 01.00 1.0 10 4.8
01.01.1995 01.00 1.0 15 3
01.01.1995 01.00 1.0 20 2.5
01.01.1995 01.00 1.0 25 1.2
31.01.1995 23.00 31.0 5 10
31.01.1995 23.00 31.0 10 8.7
31.01.1995 23.00 31.0 15 8.7
31.01.1995 23.00 31.0 20 7.5
31.01.1995 23.00 31.0 25 2.3
所以前三个字段应该相同。
有一些明显的方法可以进行算术 - 例如
或者
要反转最终字段的顺序,请从开始
NF
并倒计时,例如