从stdin到子样本的Linux命令

从stdin到子样本的Linux命令,linux,stdin,random-sample,Linux,Stdin,Random Sample,我想随机保留通过stdin流入的所有行的一部分(比如0.001)。有没有linux命令可以做到这一点 我总是可以编写一个python脚本来生成一个统一的随机数,并根据它是否是的本地值来确定它是否足够 cat input | awk 'rand() <= 0.001' cat输入| awk'rand()它是否足够原生 cat input | awk 'rand() <= 0.001' cat-input | awk'rand()大多数Linux发行版还包括(基于Debian的发

我想随机保留通过stdin流入的所有行的一部分(比如0.001)。有没有linux命令可以做到这一点

我总是可以编写一个python脚本来生成一个统一的随机数,并根据它是否是的本地值来确定它是否足够

cat input | awk 'rand() <= 0.001' 
cat输入| awk'rand()它是否足够原生

cat input | awk 'rand() <= 0.001' 

cat-input | awk'rand()大多数Linux发行版还包括(基于Debian的发行版上的包
bsdgames
,基于Redhat的发行版上的包
bsd games
)。安装该软件包后,您只需使用
random
过滤器即可,它完全满足您的要求:

cat input | random 100

将平均每100行打印一次。

大多数Linux发行版还包括(基于Debian的发行版上的包
bsdgames
,基于Redhat的发行版上的包
bsd games
)。安装该软件包后,您只需使用
random
过滤器即可,它完全满足您的要求:

cat input | random 100


将平均每100行打印一次。

恐怕您需要自己写一行……真的吗?这似乎是一个足以证明本机linux命令正确性的案例。即使是涉及awk/sed/etc的令人讨厌的表达也可以。你是对的,coreutils的
shuf
可以做到这一点。它可以洗牌行,您最多可以请求
n
条目…
shuf
sort
可能不起作用,因为这些命令需要查看整个文件(或整个行集)。在我的例子中,stdin将有太多的行无法放入内存。我希望能够对每一行做出放弃或保留的决定。恐怕你需要写自己的…真的吗?这似乎是一个足以证明本机linux命令正确性的案例。即使是涉及awk/sed/etc的令人讨厌的表达也可以。你是对的,coreutils的
shuf
可以做到这一点。它可以洗牌行,您最多可以请求
n
条目…
shuf
sort
可能不起作用,因为这些命令需要查看整个文件(或整个行集)。在我的例子中,stdin将有太多的行无法放入内存。我希望能够为每一行做出放弃或保留的决定。这就是我一直在寻找的。我如何使其随机?不同的运行会产生相同的行集。您需要初始化随机数生成器。请参阅我的编辑。不幸的是,这不会打印任何内容。我将调整
srand
。谢谢。对不起,我的错@古多克的编辑工作完美。在对一个有100行的文件进行测试时,我忘了将
0.001
更改为
0.1
,因此结果是0行:)这就是我要找的。如何使其随机?不同的运行会产生相同的行集。您需要初始化随机数生成器。请参阅我的编辑。不幸的是,这不会打印任何内容。我将调整
srand
。谢谢。对不起,我的错@古多克的编辑工作完美。在对一个有100行的文件进行测试时,我忘了将
0.001
更改为
0.1
,因此结果是0行:)如果所有linux发行版都有这个命令,这将是完美的。因此,没有标记为可接受的答案,但感谢您注意到这一点。如果所有linux发行版都有此命令,这将是完美的。因此,不要将其标记为已接受的答案,但感谢您注意到这一点。