[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:21946] Re: Filenameの一括変換



From: "Tadashi Nakamura" <tn_mls@hotmail.com>
Message-Id: <BAY2-DAV17h29cM3ory0002f3bc@hotmail.com>

> >   find . -type f | gawk '{print "mv "$1" "tolower($1)}' > /tmp/chname.sh

> mv ./SUB1/SUBSUB1/15/S15_002.FIL ./sub1/subsub1/15/s15_002.fil
> のような Command では、変更できなくて
> mv ./SUB1/SUBSUB1/15/S15_002.FIL ./SUB1/SUBSUB1/15/s15_002.fil
> というようにしなければなりません。
> Sub Direcotry の名前は大文字でも構いません。

というか、上のパターンでは、あらかじめ小文字名のディレクトリを掘ってい
ないとうまく行かないですよね。

> これだと chname.sh の方を加工した方が早いかもしれませんが
> Sub Directory の名前はそのままで、Filename だけを
> 小文字にに変換するようなことはできるのでしょうか。

perl あたりで、opendir して1つずつ処理すると楽で確実ですが、せっかくな
ので find を活用しますか。

UNIX ともあろうものなら、このくらいは一発ですよ。

$ for f in `find . type f`; do
>   ( cd `dirname $f` ; ff=`basename $f`
>     mv $ff `echo $ff | tr '[A-Z]' '[a-z]'` )
> done

bash の場合です。テストはしてません :-)。

find の -exec 構文を使ってもいけるかもしれませんが、さすがにこれくらい
になると、中身はシェルに任せて for で回した方が楽ですね。
_______________________________
田原 俊一   jado@flowernet.gr.jp, shunichi_tahara@zenrin.co.jp
                                  http://flowernet.gr.jp/jado/
FingerPrint:  16 9E 70 3B 05 86 5D 08  B8 4C 47 3A E7 E9 8E D9
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

References
[plamo:21940] Re: Filenameの一括変換, 辰己丈夫
[plamo:21941] Re: Filenameの一括変換, 辰己丈夫
[plamo:21943] Re: Filename の一括変換, Tadashi Nakamura

[検索ページ] [メール一覧]
Plamo ML 公開システム