$ ls hoge1.txt fuga1.txt piyo1.txt
というファイル群に対し、ファイル名に含まれる番号だけを変えて
$ ls hoge2.txt fuga2.txt piyo2.txt
となるようにしたくて、調べてた。
最初は、
$ for a in `ls *1*`; do mv $a `echo $a | sed "s/1/2/"`; done
というのしか思いつかなくて、なんともカッコ悪いし、俺馬鹿なの?死ぬの?とか思ったけど、どうやら
$ for a in `ls *1*`; do mv $a ${a/1/2}; done
という方法が良さげ。
変数展開にこんなに応用技があるとは知らなかったわ〜。
http://matsui.homeunix.com/index.php?Bash%A5%B7%A5%A7%A5%EB%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8%2F%C6%C3%BC%EC%A4%CA%CA%D1%BF%F4%C5%B8%B3%AB