如何用awk分割数据

时间:2015-01-27 17:36:20

标签: shell awk awk-formatting

我想用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 

1 个答案:

答案 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