1
我想品尝CSV文件的第2列(任意数量的样本是罚款)使用awk
和rand()
。但是,我注意到,我总是同一批样品如何兰特()工作在AWK
cat toy.txt | awk -F',' 'rand()<0.2 {print $2}' | wc -l
我探索的结束,似乎rand()
如我所料不工作。例如,下面的a似乎总是为1,
cat toy.txt | awk -F',' 'a=rand() a<0.2 {print a}'
为什么?
只是好奇 - 你认为'a = rand()a <0.2'在你的第二个脚本中意味着什么? –
与键入'rand()<0.2'类似,不是吗?只是想打印rand()的值。 – user3639557
不,这就是'{a = rand()} a <0.2'。我真的不确定awk会写什么,但我最好的猜测是它可能相当于'(a =((rand()a)<0.2?1:0)?1:0)'。 –