打印字符串n次,其中n =(第一行中的字段)-1

时间:2015-12-09 16:47:01

标签: bash awk sed

我有一个这样的文件:

X   7   1   3
X   8   1   4
X   9   1   6
X   13  2   8
X   20  6   11
Y   13  2   8
Y   19  6   10
Y   20  6   11

基本上如果我们调用第一行的第2列' n',我想在顶部添加一个字符串n-1次,以便输出为:

X   1   0   0
X   2   0   0
X   3   0   0
X   4   0   0
X   5   0   0
X   6   0   0
X   7   1   3
X   8   1   4
X   9   1   6
X   13  2   8
X   20  6   11
Y   13  2   8
Y   19  6   10
Y   20  6   11

请注意,第1列第1行是可变的。有没有办法在awk中这样做?

1 个答案:

答案 0 :(得分:0)

awk救援!

$ awk 'NR==1{for(i=1;i<$2;i++) print $1, i, 0, 0} 1' file | column -t

X  1   0  0
X  2   0  0
X  3   0  0
X  4   0  0
X  5   0  0
X  6   0  0
X  7   1  3
X  8   1  4
X  9   1  6
X  13  2  8
X  20  6  11
Y  13  2  8
Y  19  6  10
Y  20  6  11