You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在shell脚本中从数据集等概率随机采样50个文件?

随机抽取数据集文件相关问题解答

核心问题确认

你使用的find /mnt/Dataset/ -type f | shuf -n 50命令完全可以满足等概率随机抽取50个文件的需求。

细节问题解答

  • shuf命令默认会先将所有输入行完整读入内存、统计总行数之后再执行随机选择,不存在边读边选的逻辑。
  • shuf的抽样算法是无偏的,每一行被选中的概率完全均等,正好匹配你的需求。
  • 常规场景下不需要使用其他工具,只有当你要处理的总文件数极大(比如千万级以上,所有文件路径读入后超出当前机器内存上限)时,才需要换用基于蓄水池抽样的其他实现。

可选优化建议

如果你的数据集内存在包含换行符的特殊文件名,可使用空字符分隔的版本避免解析错误:

find /mnt/Dataset/ -type f -print0 | shuf -z -n 50 | tr '\0' '\n'

内容的提问来源于stack exchange,提问作者Fractale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 07:45:01