- PR -

ファイル名変更について

1
投稿者投稿内容
ueq
会議室デビュー日: 2006/07/18
投稿数: 19
投稿日時: 2006-08-09 17:48
一括で複数のファイル名(例えば拡張子の変更)の変更を
コマンドラインから実施しているのですが
意図通りの結果が得られません。
どなたかご存知の方いらっしゃいましたらご教授お願い致します。

(例)
test1.log
test2.log
⇒test1.tmp
test2.tmp
みたいに一括で変更できる方法ご存知でしょうか。

色々と調べてみますと
find ./ -name "*.log" -exec mv {} [].tmp ;
で出来そうだったのですがうまくいきません。
私は、mv {} [].tmpの[]の意味が理解できてません。
上記コマンドを実行すると2つのファイル
(test1.log、test2.log)が[].tmpとなり
ファイル名が[]付きになってしまい1つのファイルが消えて
しまいます。

宜しくお願い致します。

あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2006-08-09 20:12
あまり美しい方法ではないかもしれませんが、

ls -1 *.log | while read line; do
mv $line `echo $line | sed -e 's,\.log$,.tmp,'`
done

もしくは、

find ./ -name '*.log' | while read line; do
mv $line `echo $line | sed -e 's,\.log$,.tmp,'`
done

でできるかと思います。

> find ./ -name "*.log" -exec mv {} [].tmp;

すみません、このコマンドについては私はよく知りません。;;
はしもと
大ベテラン
会議室デビュー日: 2003/02/05
投稿数: 182
投稿日時: 2006-08-09 20:45
rename コマンドがあるなら以下でいけます。

$ rename .log .tmp *.log

ただし foo.log.log とかあると foo.tmp.log になるけど。
ueq
会議室デビュー日: 2006/07/18
投稿数: 19
投稿日時: 2006-08-10 09:21
あんとれ様

 返信有難う御座います。
 あんとれ様の提示頂いた方法で無事解決しました。
 本当に有難う御座います。

はしもと様

 返信有難う御座います。
 rename コマンドがあるみたいですので
 試してみます。
 本当に有難う御座います。


  
1

スキルアップ/キャリアアップ(JOB@IT)