ディレクトリ構造の変換

ディレクトリ構造の変換

次のフォルダ構造があります

root folder
 |-al2
   |- GER.zip
   |- ENG.zip
 |-ww
   |- GER.zip
   |- ENG.zip

など。フォルダ名は任意の文字列です。

次のようにファイルをソートしたいと思います。

root folder
 |-ENG
   |-al2
     |- ENG.zip
   |-ww
     |- ENG.zip
 |-GER
   |-al2
     |- GER.zip
   |-ww
     |- GER.zip

これをどのように自動化できますか?

修正する:フォルダ名はどのようなシステムにも従わない。ランダムな文字列です。

ベストアンサー1

以下は単純なbashスクリプトです:

#!/bin/bash
for file in ./*/* ; do
    lang=${file%.zip}            # Remove the extension.
    lang=${lang#./*/}            # Remove the folder.
    mkdir -p "$lang/${file%/*}"  # Create the target folders.
    mv "$file" "$lang/$file"
done

おすすめ記事