0

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

例如,例如我想要以下列

    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

这可能吗?

4

2 回答 2

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
于 2013-10-09T14:05:30.247 回答
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 构造的那些场合之一实际上是有意义的。

于 2013-10-09T13:42:12.073 回答