名前が解像度サイズで終わらない画像ファイルをコピーするには?

名前が解像度サイズで終わらない画像ファイルをコピーするには?

画像を含むフォルダがあり、年と月のフォルダで構成されています(例/2015/08/image.jpg:)。画像が追加されるたびに、次のようにコピーされ、サイズが変更されます。

image-1024x768.jpg
image-150x150.jpg
image-300x225.jpg
image-600x450.jpg
image.jpg

毎年、毎月フォルダを検索して元のファイルだけをシステム内の他のフォルダにコピーするスクリプトを作成したいと思います。

正規表現を使用する必要があるようですが、方法がわかりません。

編集:以下はいくつかのファイル名の例です。横にアスタリスク(*)があるコンテンツは、コピーする必要がある唯一のコンテンツです。

1450366623-20151217-109x300.png
1450366623-20151217-150x150.png
1450366623-20151217-372x1024.png
1450366623-20151217-600x1650.png
1450366623-20151217.png*
image-3-1024x768.jpeg
image-3-150x150.jpeg
image-3-225x300.jpeg
image-3-300x225.jpeg
image-3-600x450.jpeg
image-3-600x800.jpeg
image-3-768x1024.jpeg
image-3-768x576.jpeg
image-3.jpeg*
IMG_0939-1-1024x768.jpg
IMG_0939-1-150x150.jpg
IMG_0939-1-300x225.jpg
IMG_0939-1-600x450.jpg
IMG_0939-1-768x576.jpg
IMG_0939-1-e1451106610990-150x150.jpg
IMG_0939-1-e1451106610990-225x300.jpg
IMG_0939-1-e1451106610990-600x800.jpg
IMG_0939-1-e1451106610990-768x1024.jpg
IMG_0939-1-e1451106610990.jpg*
IMG_0939-1.jpg*

編集2:画像は月/年のフォルダごとに構成されていると言いましたが、これはそれが再帰的でなければならないことを意味すると確信しています。ただし、2015年の横にはコピーされないようにする別のフォルダがあります。

これらの写真をコピーするときにフォルダ構造をコピーできますか?

編集3:私の質問に答えてくれたすべての人に感謝します。私はこのプロジェクトに圧倒され、あきらめることにしたことを謝罪し、悲しいことに認めなければなりません。ほとんどの答えを実装する方法さえよくわかりません。

ベストアンサー1

正規表現は必要なく、拡張されたワイルドカードパターンが必要です。あなたのシェルがbashだとします。

shopt -s extglob
cd parent-directory-of-2015
for original in */*/!(*-+([0-9])x+([0-9]).jpg); do
    echo "an original: $original"
done

このモードは入らないようにする一致するファイルがあります。」-数字x数字.jpg"

おすすめ記事