列があり、それを複数回繰り返したい。
たとえば、次の列が必要です
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
これは可能ですか?
列があり、それを複数回繰り返したい。
たとえば、次の列が必要です
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
これは可能ですか?
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
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 つです。