我想用awk处理一些文件。我有这样一个文件:
输入:
a 2 16
b 17 25
c 26 32
d 33 51
我想要的是拆分所有行以枚举第2列和第3列之间的范围,将数字递增2.例如:
a 2 4 6 8 10 12 14 16
b 17 19 21 23 25
c 26 28 30 32
d 33 35 37 39 41 43 45 47 49 51
答案 0 :(得分:4)
$ awk ' { printf("%-3s", $1)
> for (i=$2; i<=$3; i+=2)
> printf ("%-3d", i)
> printf("\n") } ' <<EOF
> a 2 16
> b 17 25
> c 26 32
> d 33 51
> EOF
a 2 4 6 8 10 12 14 16
b 17 19 21 23 25
c 26 28 30 32
d 33 35 37 39 41 43 45 47 49 51