シェル内の多数のファイルの名前を一括変更しようとしています。インターネット上にはそれに関する資料がたくさんありますが、特定のケースの解決策が見つからないようです。
「timestamp-id」(と思われるもの)を持つファイルがたくさんあります:
abc_128390.png
abc_138493.png
abc_159084.png
...
カウンターと交換したいのですが:
abc_001.png
abc_002.png
abc_003.png
...
私の(たっぷりの)ナイーブなアプローチは次のようになります:
mv abc_*.png abc_{001..123}.png
また、for
で動作させる方法がわかりませんでした -ループ。
FWIW、残念ながらrename
この特定のシステムでは利用できません。
何かアドバイスをいただければ幸いです!
承認された回答:
カウンターのインクリメントをより巧妙な方法で処理するソリューションは考えられませんが、これは機能するはずです:
i=0
for fi in abc_??????.png; do
mv "$fi" abc_$i.png
i=$((i+1))
done
abc_*.png
を使用しても安全です 最初のmv
の前に展開されるため は実行されますが、最後に6文字のタイムスタンプを持つファイルのみが必要であるという点で非常に具体的にすると便利です。