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

これは、シェル構造を使用することが実際に理にかなっている場合の 1 つです。

于 2013-10-09T13:42:12.073 に答える