やりたいこと
複数のファイルのファイル名を連番に変更する。
> ls test1.png test4.png test5.png test10.png
上記を下記のようにする。
> ls test001.png test002.png test003.png test004.png
方法
以下のコマンドで変更前後を確認
> ls *.csv | awk '{ printf "mv %s test%03d.png\n", $0, NR }' mv test1.png test001.png mv test4.png test002.png mv test5.png test003.png mv test10.png test004.png
問題なければ次のように、パイプを使って実行
> ls *.csv | awk '{ printf "mv %s test%03d.png\n", $0, NR }' | sh
また、printfの部分を変更することで柔軟な連番付けが可能となる。
## 連番を1000番台にする > ls *.csv | awk '{ printf "mv %s test%03.2f.png\n", $0, NR+1000.03 }' mv test1.png test1001.03.png mv test4.png test1002.03.png ... ## 偶数の連番にする > ls *.csv | awk '{ printf "mv %s test%03d.png\n", $0, NR+NR }' mv test1.png test002.png mv test4.png test004.png ... ## 奇数の連番にする > ls *.csv | awk '{ printf "mv %s test%03d.png\n", $0, NR+NR-1 }' mv test1.png test001.png mv test4.png test003.png ...
コメント