私は多くのサブディレクトリを持つディレクトリを持っています。繰り返し名前を付けたjpgファイルを再帰的に検索したいと思います。Bash - 名前に反復番号を含むファイルを見つける
明確化 - ファイルには名前があります。 300x300、正方形の画像のみを表示したいサイズは異なります(500x500,1200x1200など)。
私はMac OSを使用しています。
私は多くのサブディレクトリを持つディレクトリを持っています。繰り返し名前を付けたjpgファイルを再帰的に検索したいと思います。Bash - 名前に反復番号を含むファイルを見つける
明確化 - ファイルには名前があります。 300x300、正方形の画像のみを表示したいサイズは異なります(500x500,1200x1200など)。
私はMac OSを使用しています。
あなたは正規表現でgnu find
を使用することができます。
find . -regextype posix-extended -iregex '.*\b([0-9]+)x\1\.jpg$'
([0-9]+)x\1
はx
によって分離された同じ数字の繰り返しを保証します。 OSX(BSD)あなたが使用することができ、見つけるには
:
find . -iregex '.*[[:<:]]\([0-9][0-9]*\)x\1\.jpg$'
パイプの最初の部分は、ツリー内のjpgファイルのすべてを検索します。パイプの第2部分は、これらの結果をフィルタリングします。
find . -type f -name '*.jpg' | egrep '[^\d](\d+)x\1'
バリエーションをサポートする正規表現を拡張する方法がありますが、説明によればこれで十分です。
OS XにはBSD 'find'があり、GNU' find'ではありません。 '-regextype'はありません。 – Barmar
実際に私は両方を持っています。 'home brew'を使って' gnu find'を実行しましたが、 'gnu find'で動作するという答えを追加しました。 – anubhava
これは正確に 'path/to/300x300.jpg'を探します。おそらくOPの後にあるでしょう 'path/to/picture-name-300x300.jpg'を許可する正規表現を捨てなければなりません。 –