AWK + sh で。

ディレクトリ内のデタラメな *.jpg ファイルをこんな感じでまとめてリネームするという予測。


$ ls
asfidfj.jpg	aslkda.jpg	dsklafsof.jpg	lsad.jpg
 
$ ls *.jpg | awk '{ printf "mv %s hoge_%04d.jpg\n", $0, NR }'
mv asfidfj.jpg hoge_0001.jpg
mv aslkda.jpg hoge_0002.jpg
mv dsklafsof.jpg hoge_0003.jpg
mv lsad.jpg hoge_0004.jpg

AWKの出力結果をシェル(sh)にパイプで流すことで、実際に実行して、連番ファイル名にリネームできる。


$ ls *.jpg | awk '{ printf "mv %s hoge_%04d.jpg\n", $0, NR }' | sh
 
$ ls
hoge_0001.jpg	hoge_0002.jpg	hoge_0003.jpg	hoge_0004.jpg

環境: Mac OS X Lion


$ uname -mvrs
Darwin 11.0.1 Darwin Kernel Version 11.0.1: Wed Jun 29 19:53:22 PDT 2011; root:xnu-1699.23.2~1/RELEASE_X86_64 x86_64
 
$ awk -version
awk version 20070501
 
$ sh -version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin11)
Copyright (C) 2007 Free Software Foundation, Inc.

tags: awk

Posted by NI-Lab. (@nilab)