フォルダ内のファイルをランダムにサンプリングして別のフォルダへコピーしたい
取り敢えずプログラムを動かすために、全ての画像が入っているフォルダから、
学習用、テスト用のフォルダにランダムにサンプリングして移動させたい。
find ./FROM_DIR/ | grep *.jpg | sort -R | tail -n NUM | xargs -n 1 sh -c 'cp -v $0 ./TO_DIR'
コマンド | 説明 |
---|---|
find ./FROM_DIR/ | FROM_DIR以下にあるファイル・フォルダをすべて列挙 |
grep *.jpg | 〜.jpgとなっているファイルを検索 |
sort -R | ランダムに並び替え |
tail -n NUM | NUM個のファイルを取得 |
xargs -n 1 sh -c 'cp -v $0 ./TO_DIR' | $0に取得した文字列(ファイル名)を入れてTO_DIRへコピーする |