ファイル名の部分に基づいてファイルをサブフォルダにソートする方法は?

ファイル名の部分に基づいてファイルをサブフォルダにソートする方法は?

ディレクトリ内のファイルは次のとおりです。

Ford-Mustang-001.jpg
Ford-Mustang-002.jpg
Ford-Mustang-003.jpg

Chevy-Impala-001.jpg
Chevy-Impala-002.jpg
Chevy-Impala-003.jpg

サブフォルダに並べ替えたいです。

/Mustang
/Impala

答え1

明らかな答え:

ディレクトリを作成してその中にファイルを入れるだけです。

mkdir Mustang Impala
mv *Mustang*.jpg Mustang/
mv *Impala*.jpg Impala/

これは…ファイルグロービング;シェル関数です。


多くのファイルがあり、それを保持するためにさまざまなディレクトリを作成する必要がある場合は、次のことを試してください。Qiao Qiaoの答え

答え2

名前の使用(perl renamer)

prename 'if(/(.+?)-(.+?)-(.*)/){mkdir $2; $_="$2/$_"}' *.jpg

答え3

awk {split $0, a, "-"; mkdir a[1]; mv $0 a[1]/}名前を変更するには、awkを使用してファイル名を分割し、mvプログラムを使用します。

関連情報