如何使用awk

时间:2016-05-11 19:55:50

标签: linux awk gawk

我正在尝试编写awk脚本,生成3个总和为60的自然数。我正在尝试使用rand函数但是我遇到了总和为60的问题

1 个答案:

答案 0 :(得分:0)

这是一种方式:

awk -v n=60 'BEGIN{srand();a=int(rand()*n);b=int(rand()*(n-a));c=n-a-b;
             print a,b,c}'

想法是:

  • 生成随机数a0=<a<60
  • 生成随机数b0=<b<60-a
  • c=60-a-b

在这里,我设置了一个变量n=60,以便在您有其他总和时轻松实现。

如果我们运行这个单行10次,我们得到输出:

kent$  awk 'BEGIN{srand();for(i=1;i<=10;i++){a=int(rand()*60);b=int(rand()*(60-a));c=60-a-b;print a,b,c}}'
46 7 7
56 1 3
26 15 19
14 12 34
44 6 10
1 36 23
32 1 27
41 0 19
55 1 4
54 1 5