在没有完成整个搜索的情况下随机搜索查找

时间:2018-03-31 21:06:47

标签: bash find

有没有办法获得类似于此的结果(我需要使用bash来实现):

find path -type f -name 'key' | shuf | head -n100

没有完成整个搜索?我需要获得100个随机样本,但不能等待find命令完成整个搜索。

我可以做这样的事情

find path -type f -name 'key' -print | head -nN | shuf | head -n100

(N> 100)

但显然它不是正确的解决方案(因为搜索将始终返回相同的N个样本,因此我不会搜索整个文件集。)

如果它有一个简单的解决方案,我不知道它,我道歉。

2 个答案:

答案 0 :(得分:0)

更简短的方法:

find path -type f -name 'key' | shuf --head-count=100

答案 1 :(得分:0)

根据Charles Duffy的建议,我现在正在使用这样的东西

for (( i=0; i<100; i++)); do
  for d in `find mainfolder/my_case_simple_directory_structure_/.../* -maxdepth 1 -type d | shuf | head -n1`; do
    find $d -type f -name 'key' | shuf | head -n1
  done
done

这不是最佳解决方案,但它适用于我的情况,具有非常简单的目录结构。

感谢。