ディレクトリツリーからランダムサンプルを選択する

ディレクトリツリーからランダムサンプルを選択する

ファイルを含むディレクトリを含むディレクトリがあります。各リーフディレクトリで2つのファイルをランダムに選択したいと思います。私が見つけた単一のディレクトリから選択することに関するこの質問しかし、何百ものディレクトリのそれぞれでそれを実行するのは痛いでしょう。

ベストアンサー1

固定深度ディレクトリ構造(説明に従ってファイルを含むサブサブディレクトリを含むディレクトリ)を使用して、次のことを実行できます。

for subsubdir in "$directory"/*/*/
do
    find "$subsubdir" -type f | shuf -n 2
done | shuf

最後| shufの前提は、リストがディレクトリごとにソートされるのではなく、全体的にランダムにソートされることです。それ以外の場合は捨ててください。

ファイル名に改行したい場合は、ゼロで終わるファイルのリストに切り替えることができます。

おすすめ記事