source: lab/trunk/misc/findsimplified.pl @ 198

Last change on this file since 198 was 198, checked in by mitty, 11 years ago
  • find file or directory that name contains Simplified Chinese characters
  • output how to convert them to Japanese Shinjitai
  • Property svn:executable set to *
File size: 1.1 KB
Line 
1#! /usr/bin/perl -w
2
3use strict;
4use warnings;
5use utf8;
6
7use Encode;
8use Kanconvit;  # http://kanconvit.ta2o.net/
9
10my $top = shift @ARGV || exit;
11if (! -d $top) { exit; }
12
13my $utf8 = find_encoding("utf8");
14my $ck = Kanconvit->new();
15
16checkdir($top);
17
18sub match {
19    my $str = shift @_;
20   
21    $str = $utf8->decode($str);
22    my $jtext = $ck->conv_c2j($str);
23    if ($str ne $jtext) {
24        return $utf8->encode($jtext);
25    }
26   
27    return '';
28}
29
30sub checkdir {
31    my $target = shift @_;
32   
33    print STDERR "# checking '$target'\n";
34    opendir(my $dir, $target) || return $target;
35    my @entries = sort grep { !m/^(\.|\.\.)$/g } readdir($dir);
36    closedir($dir);
37   
38    my @dirs;
39    while (my $entry = shift @entries) {
40        if (my $japanese = match($entry)) {
41            print "mv '$target/$entry' \\\n";
42            print "   '$target/$japanese'\n";
43            next;
44        }
45        if (-d "$target/$entry") {
46            push @dirs, $entry;
47            next;
48        }
49    }
50   
51    while (my $entry = pop @dirs) {
52        checkdir("$target/$entry");
53    }
54}
Note: See TracBrowser for help on using the repository browser.