[ トラックバック(0) ]
Counter: 12899,
today: 3,
yesterday: 3
CAPのファイル名をEUCで表示
SAMBAでCAPコードで書かれた日本語のみ、EUCに変換して標準出力するプログラムです。/tmp などに下記のスクリプトと jcode.pl を入れて、変換したいディレクトリを指定してください。
【重要】
プログラムのコメントを取ると再起的に全ディレクトリ内のファイルを調べ、無条件にファイル名をEUCに変換していきます。SAMBAをEUCで使う時に利用できますが、元に戻すことはできませんので細心の注意が必要です。
プログラムをさわらなければ表示のみなので危険は何もありません。
USAGE: $ perl code.pl /var/samba/public
#!/usr/bin/perl require "jcode.pl"; if(!@ARGV){$d=".";}else{$d=$ARGV[0];} &CodeConv($d); sub CodeConv{ my ($dir) = @_; my (@f,$fo,$co,$a); opendir(IN,$dir); @f=readdir IN; close IN; foreach (@f){ if (/^[^\.]/){ $fo = $_; s/\:([0-9a-f][0-9a-f])/sprintf "%c",hex($1)/geo; $co = &jcode'getcode(*_); if ($co eq "sjis"){ $a = &jcode'sjis2euc(*_); # rename "$dir/$fo","$dir/$_"; # print "Convert: $dir/$fo -> $dir/$_\n"; print "$fo -> $_\n"; } # if ( -d "$dir/$_" ){ # &CodeConv("$dir/$_"); # } } } }