Linux 如何将awk与for循环一起使用?

Linux 如何将awk与for循环一起使用?,linux,awk,Linux,Awk,我有一个5列的文件 2 649 2 82 1 3 651 1 83 1 2 652 3 84 2 ... ... ... ... ... 第一列是n段中的点数,第二列是x坐标,第三列是delta x,当前x坐标与下一列之间的delta,类似地,第四列是y坐标,第五列是delta y。我需要生成线段中的所有点,因此输出应该是第一行中的数据

我有一个5列的文件

2       649     2       82      1
3       651     1       83      1
2       652     3       84      2
...     ...     ...     ...     ...
第一列是
n
段中的点数,第二列是
x
坐标,第三列是delta x,当前
x
坐标与下一列之间的delta,类似地,第四列是
y
坐标,第五列是delta y。我需要生成线段中的所有点,因此输出应该是第一行中的数据

649     82
650     82.5
从第二行中的数据

651     83
651.33  83.33
651.67  83.67
从第三行中的数据

652     84
653.5   85
你知道怎么做吗?

这样就可以了:

    awk '{n=$1; x=$2; dx=$3; y=$4; dy=$5;  \
    for(i=0;i<n;i++) printf "%.2f %.2f\n", x+i*dx/n, y+i*dy/n; }' file

请编辑标题。您还需要解释如何从输入中获得输出。分类了吗?还有别的办法吗?谢谢:)很乐意帮忙!最后一个问题,我想对值进行四舍五入,所以我不想打印83.67,我想打印84,我该怎么做?@e271p314你是说如果分数大于
.5
?如果是这样,您可以执行:
awk'{for(i=0;i@e271p314
ceil
不是awk函数。您可以尝试以下操作:
awk'{for(i=0;在
awk
中没有round或ceil函数。您可以使用此[round函数[()如果你愿意的话。但是我不明白为什么添加
0.5
在所有情况下都不起作用。你有没有失败的例子?
awk '{for(i=0;i<$1;i++) printf "%.2f %.2f\n", $2+i*$3/$1, $4+i*$5/$1; }' file