次の2つのフォルダ構造があります。
SOURCE_FOLDER_W_GOOD_NAMES
├── A_some_name.png
├── B_another_different_name.png
├── C_just_another_too.png
└── D_this_one_stop_this_example.png
他のフォルダ:
DESTINATION_FOLDER_W_INCREMENT_NAMES
├── icon_0.icns
├── icon_1.icns
├── icon_2.icns
└── icon_3.icns
したがって、デフォルトではSOURCE_FOLDER
アルファベット順にソートされたファイルはすでに含まれています。このソート順はすでに一致していますDESTINATION_FOLDER
(例:A_some_name.png
=== icon_0.icns
)。
このループの組み合わせを使用してファイル名を変更します。
i=0
j=0
for img in SOURCE_FOLDER/*.png; do
for i in {0..10000}; do
let j++ || true;
mv "SOURCE_FOLDER/icon_$i.icns" "DESTINATION_FOLDER/${img%.*}.icns"
done
done
上記のフォルダのルートにあるコマンドラインでこれを行いました(上記はフォーマットされており、1行で書かれています)。
THE_FATHER_FOLDER
├── SOURCE_FOLDER_W_GOOD_NAMES
└── DESTINATION_FOLDER_W_INCREMENT_NAMES
残念ながら、上記のループは期待どおりに機能しません。私が間違っていると確信していますが、どこにいるのかわかりません。
私の言葉を訂正してください。
修正する
上記の問題に対する解決策は私が直接解決しました。
counter=0
for img in SOURCE_FOLDER/*.png; do
let counter++ || true;
mv "SOURCE_FOLDER/icon_$counter.icns" "DESTINATION_FOLDER/${img%.*}.icns"
done
しかし、このフォルダにはまだ問題があります。
DESTINATION_FOLDER_W_INCREMENT_NAMES
├── icon_0.icns
├── icon_1.icns
├── icon_2.icns
└── icon_3.icns
再度インデックスを作成したいと思います。1変える0だから私はこれを使っています:
counter=0
for index in {0..final_number}; do
let counter++ || true;
mv "icon_${index}.icns" "icon_${counter}.icns";
done
現在私のファイルの場所は次のとおりです。0そしてついに得る最終番号 - 1したがって、このフォルダ内のすべての単一のファイルが上書きされ、最初のファイル(icon_0)のみがインポートされ、完了したら名前を(icon_final_number)に変更します。
この問題をどのように解決できますか?
ベストアンサー1
名前を変更したいですか?戻る:
counter=$((final_number + 1))
for index in {final_number..0}; do
mv "icon_${index}.icns" "icon_${counter}.icns";
let counter--;
done