GNU/Linux >> Linux の 問題 >  >> Linux

ファイルの名前を順番に変更しますか?

シェル内の多数のファイルの名前を一括変更しようとしています。インターネット上にはそれに関する資料がたくさんありますが、特定のケースの解決策が見つからないようです。

「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文字のタイムスタンプを持つファイルのみが必要であるという点で非常に具体的にすると便利です。


Linux
  1. 検索を使用して複数のファイルの名前を変更するにはどうすればよいですか?

  2. Samba共有のファイルの名前を変更できませんか?

  3. Metamorphose 2 –Linuxでファイルとフォルダーの名前をバッチで変更

  1. Linuxでファイルの名前を変更する方法

  2. 正規表現を使用して多くのファイルの名前を変更するにはどうすればよいですか?

  3. PNG ファイルを再帰的に最適化する

  1. ディレクトリ内のファイルの名前を変更しますか?

  2. Linux でファイル名を大文字に変更

  3. ファイルのエンコーディングを一括変換