「ぎょーむ日誌」目次に戻る | KuboWeb top に戻る | twilog | atom

ぎょーむ日誌 2000-04-25

苦情・お叱りは, たいへんお手数かけて恐縮ですが, 久保 (kubo@ees.hokudai.ac.jp) までお知らせください.

2000 年 04 月 25 日 (火)

	[ 問題 ]
	ディレクトリを再帰的にたどって、中にあるファイル名を
	全部小文字に変換していきたいのですが、どういう方法が
	賢いでしょうか?
	[ 回答 1 ]
	find . -type f -exec mv {} `echo {} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
	[ 回答 1 への補足 ]
	それは '[A-Z]' '[a-z]' などと書けばいいのでは。
	でもそれ以前の問題として、`` の展開のタイミングがまずいのでは。
	# \; も抜けてるし、きっと試さなかったに違いない。
	find は /bin/sh を呼び出さないから -exec /bin/sh -c 'mv {} `...`' \;
	とかするんですかね。
	あと、単独の word として現れた {} しか展開してくれない find も考慮する
	なら...
	[ 回答 2 ]
	find . -type f -print | perl -nle 's%.*/%%; $d = $&; ($f = $_) =~ tr/A-Z/a-z/; unlink($d . $f); rename($d . $_, $d . $f)'


KuboLog | KuboWeb