フォルダの構成

フォルダの構成

複数のフォルダ(「Amazon」、「Niger」、「Rhine」、...)があります。各フォルダには、複数のサブフォルダ(「gfdl」、「hadgem」、「ipsl」、...)があります。各サブフォルダは5つのサブフォルダで構成されています(たとえば、「amazon」では、サブフォルダ「gfdl」は5つのサブフォルダ「amazon_gfdl」、「amazon_gfdl1」、...、「amazon_gfdl5」で構成されています)。他のサブフォルダは同じ構造に従います(たとえば、「amazon」サブフォルダ「ipsl」では、「amazon_ipsl1」、「amazon_ipsl2」、...「amazon_ipsl5」)の5つのサブフォルダで構成されています。次のようになります。 "(既に"gfdl"にある)のようなフォルダをそれぞれの新しいディレクトリにコピーし、最後に"amazon_gfdl1"が新しいディレクトリ"1"に移動し、"amazon_gfdl2"が新しいディレクトリに移動されます。 ! 現在 cp コマンドを使用して各サブフォルダに移動していますが、実際には動作しません。

ベストアンサー1

次の行に従って、これを行う小さなスクリプトを書くことができます(必要に応じて調整してください。私の話が正しいかどうかわかりません)。

> cat tst.sh 
#!/bin/bash
for river in amazon niger rhine ; do
    for name in gfdl hadgem ipsl ; do
        for count in 1 2 3 4 ; do
            mkdir ${river}/${name}/${count}
            cp -a ${river}/${name}/${river}_${name} ${river}/${name}/${count}
            mv ${river}/${name}/${river}_${name}${count} ${river}/${name}/${count}
        done
    done
done

実行する前に:

> find . | sort
.
./amazon
./amazon/gfdl
./amazon/gfdl/amazon_gfdl
./amazon/gfdl/amazon_gfdl1
./amazon/gfdl/amazon_gfdl2
./amazon/gfdl/amazon_gfdl3
./amazon/gfdl/amazon_gfdl4
./amazon/gfdl/amazon_gfdl5
...

結果:

> chmod u+x tst.sh
> ./tst.sh
> find . | sort
.
./amazon
./amazon/gfdl
./amazon/gfdl/1
./amazon/gfdl/1/amazon_gfdl
./amazon/gfdl/1/amazon_gfdl1
./amazon/gfdl/2
./amazon/gfdl/2/amazon_gfdl
./amazon/gfdl/2/amazon_gfdl2
./amazon/gfdl/3
./amazon/gfdl/3/amazon_gfdl
./amazon/gfdl/3/amazon_gfdl3
./amazon/gfdl/4
./amazon/gfdl/4/amazon_gfdl
./amazon/gfdl/4/amazon_gfdl4
./amazon/gfdl/amazon_gfdl
./amazon/gfdl/amazon_gfdl5
...

おすすめ記事