なんでリネームできないんだろう?
tmp_xx.jpgとtmp_xx-y.jpgっていうファイルが同じフォルダに混在していたとする。
ちなみにxxは2桁の数字でyは1桁の数字。
この2種類のファイルをtmp_xx.jpgに統一したい。
ちなみにシェルはbash。
#!/bin/sh for infile in $@ do if [ -e ${infile%%-*} ] ; then mv $infile ${infile%%-*}.jpg fi done
っていうシェルスクリプト書いて実行すると
mv: `tmp_01.jpg' と `tmp_01.jpg' は同じファイルです
tmp_xx-y.jpgでないファイルにしか反応しない。
っていうかifで"-*"を含むファイルだけに限定してるのにtmp_xx.jpgが反応するのはおかしいぞ。。。
パターン照合間違ってるのかと思ってスクリプトじゃなくて、とりあえず端末で
$ aaa=tmp_13-1.jpg $ echo $aaa tmp_13-1.jpg $ echo ${aaa%%-*} tmp_13
ってちゃんと出る。
なんで出来ないのかな。。。