X 個以上のイメージを含むフォルダーのリスト

X 個以上のイメージを含むフォルダーのリスト

複数のイメージを含む特定のディスクのすべてのフォルダのリストを返す方法はありますか?

検索は再帰的でなければなりませんが、Xはそうではありません。

X = 100の例:

Folder A
|_ folder A1 (containing 100 pictures)
|_ folder A2 (containing 50 pictures)
|_ 50 pictures

「フォルダA1」のみを返す必要があります。

答え1

私はすべての写真が.pngandで終わると仮定します。X=100

find ./ -type d -exec sh -c 'count=$(ls "${0}"/*.png | wc -l); if [ "${count}" -ge 100 ];then echo "${0}"; fi ' {} \;

編集する

以下のようにextensionsファイルの数や値に関係なく拡張できます。X

export files='png jpg gif'
export X='100'
find ./ -type d -exec \
sh -c 'count=$(for i in ${files}; do ls "${0}"/*.${i};done | wc -l); \
if [ "${count}" -ge "${X}" ];then echo "${0}"; fi ' {} \;

答え2

各イメージについて、そのイメージがあるディレクトリの名前を印刷します。

find \( -name \*.png -or -name \*.gif -or -name \*.jpg \) -printf '%h\n' |

uniqはソートされた入力を必要としますが、findファイルをランダムに印刷します。 (私のテストではfind -depth役に立ちませんでした。理由を尋ねないでください。)

sort |

各ディレクトリ名について発生頻度を教えてください。

uniq -c |

最後に、目的の行をフィルタリングします。

while read count dir; do
    if [ "$count" -ge 100 ]; then echo "$count $dir"; fi
done

関連情報