【问题标题】:Shuf command in linux [closed]linux中的Shuf命令[关闭]
【发布时间】:2020-05-06 13:19:40
【问题描述】:

我对 shuf 命令如何处理流输入感到困惑。它是否缓冲数据?或者有没有办法以在线方式做到这一点。

【问题讨论】:

  • 好吧,shuf 是开源的。所以只是inspect the source。它有点“智能”地工作——下一行可以被读取,可以被忽略,这一切都取决于。但在一般情况下,是的,必须缓冲整个输入。
  • 感谢您的回复,所以如果我理解正确,当我们从输入中选择一些 k 项目时,它会使用水库采样进行采样,因此不需要将其保存在内存中,但如果我们正在改组整个文件,它将整个数据保存在内存中

标签: linux bash shuffle


【解决方案1】:

该工具可以读取文件,也可以从 linux/unix 标准输入中读取。没有流媒体。

当你只是在命令行上执行shuf 时,你必须在某个时候按 CTRL-D 来告诉它“输入完成”。只有这样,该工具才开始处理数据。

【讨论】: