我正在学习AWK,当我第二次使用以下命令时,为什么数字总是相同?
第一次运行:
awk 'BEGIN{for(i=1;i<=10;i++) print int(101*rand())}'
24
29
85
15
59
19
81
17
48
15
Run Code Online (Sandbox Code Playgroud)
第二次运行:
awk 'BEGIN{for(i=1;i<=10;i++) print int(101*rand())}'
24
29
85
15
59
19
81
17
48
15
Run Code Online (Sandbox Code Playgroud)
Pau*_*ane 15
来自https://www.gnu.org/software/gawk/manual/html_node/Numeric-Functions.html
注意:在大多数 awk 实现中,包括 gawk
rand(),每次运行 awk 时都会从相同的起始数字或种子开始生成数字。因此,程序每次运行时都会生成相同的结果。这些数字在一次 awk 运行中是随机的,但可以从运行到运行进行预测。这对调试很方便,但是如果您希望程序每次使用时都做不同的事情,则必须将种子更改为每次运行时不同的值。为此,请使用srand().