【发布时间】:2021-03-20 19:16:18
【问题描述】:
我正在尝试使用 awk 生成几个带有随机列的文件。然后将每两个粘贴到一个包含两列的文件中。这将是另一个程序的输入。我面临的问题是我只在一个文件中获得最后一次迭代。 我使用的代码是:
awk 'BEGIN {
srand();
total=5;
max1=10;
count=0;
while(count < total) {
rnd1 = int(rand() * max1);
if ( array[rnd1] == 0 ) {
count++;
array[rnd1]++;
}
}
for ( i=0; i<=200; i++) {
if ( array[i] )
print i;
}
}' > out1
awk 'BEGIN {
srand();
total=5;
max2=20;
count=0;
while(count < total) {
rnd2 = int(rand() * max2);
if ( array[rnd2] == 0 ) {
count++;
array[rnd2]++;
}
}
for ( j=0; j<=max2; j++) {
if ( array[j] )
print j;
}
}' > out2
paste out1 out2 | awk '{ print " "$1".0" , $2".0"; }' > out3
有没有更好的方法将所有迭代放在单独的文件中?
我得到的输出是:
1.0 2.0
3.0 7.0
4.0 9.0
6.0 12.0
9.0 13.0
这很好,但它在一个文件“out3”中,我想获取所有迭代文件“out(i)”文件。
【问题讨论】:
-
欢迎来到 SO,很高兴你以代码的形式展示了你的努力,继续努力。请在您的问题中添加输入和预期输出示例,以便更好地理解您的问题。
-
感谢您的评论,我没有输入,只是随机数。我编辑了这个问题,我在其中一个迭代中输出了一个输出。