名前の形式が一致しない写真ファイルが複数あります。
- ノースビーチ.JPG
- サウスビーチ sm.jpg
- ブライスウィンドサーフィン.jpg
- DSC01031 1024x.jpg
- DSC02652 sm.jpg 編集
- DSC03229 sm.jpg
- 子供のためのカヤック2.jpg
- マウイ 5-05(31)1024.jpg
- マウイ秋05(41) sm.jpg
- マウイクジラ(2) sm.jpg
- マウイクジラ(6) ed.jpg
- P1000018 sm.jpg
- P1000030 sm.jpg
- P1000056 sm.jpg
- P1000148 sm.jpg
- P1000397 sm.jpg
- P1000490 sm.jpg
- P1000629 sm.jpg
- P1000995 sm.jpg
- P1010006 1024.jpg
- P1010089 1024x.jpg
- P1050988edsm.jpg
拡張子の名前を変更する代わりに、リストの最初の.jpg名を1.jpg、2番目の2.jpg、3番目の3.jpgなどに変更します。 1つのコマンドでこれをどのように実行できますか?
ベストアンサー1
シェルでループを使用します。
for x in * ; do mv -- "$x" "$((i=i+1)).jpg" ; done
現在のディレクトリにある各ファイルを一度に1つずつ見て、呼び出してから、毎回1ずつインクリメントしながらそのx
場所に移動します。$i.jpg
はい$i
$((...))
算術拡張、割り当ては割り当てられた値を返すため、i
毎回新しい数値が変更されて返されます。
たとえば、別のディレクトリでこれを複数回実行するには、その間にカウンタをリセットする必要があります。と言うか、コマンドの先頭i=0
に入力します。i=0;