我想随机保留通过 stdin 流入的所有行的一小部分(比如 0.001)。是否有执行此操作的 linux 命令?
我总是可以编写一个 python 脚本来生成一个统一的随机数,并根据它是否 <= 0.001 保留该行。但我想避免编写自己的脚本,并在 linux 中寻找本地命令。
最佳答案
够原生吗?
cat input | awk 'rand() <= 0.001'
编辑:让它每秒返回不同的行集:
cat input | awk 'BEGIN{srand();} rand() <= 0.001'
关于从 stdin 进行子采样的 Linux 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37307432/