awk重复列的值n次

时间:2013-10-09 13:34:24

标签: awk

我有一个专栏,我想多次重复。

例如 例如,我想要以下列

    1
    2
    3
    4
    5

重复n次并成为

1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
.
.
.
etc

这可能吗?

2 个答案:

答案 0 :(得分:2)

将3替换为您要打印的列的n$1的任意值:

$ for i in {1..3}; do awk '{print $1}' file; done
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5

您只能使用awk执行此操作,但您必须将整个文件存储在内存中:

$ awk '{a[NR]=$1}END{for(i=1;i<=3;i++)for(j=1;j<=NR;j++)print a[j]}' file

这是使用shell构造实际上有意义的场合之一。

答案 1 :(得分:2)

awk -v n=7 '{s = s $1 ORS} END{for (i=1;i<=n;i++) printf "%s", s}' file

n设置为您喜欢的任何数字。

或者,使用GNU awk:

awk -v n=7 -v RS='\0' -v ORS= 'END{for (i=1;i<=n;i++) print}' file