From: imiyazaki Date: Mon, 6 Oct 2003 14:43:23 +0000 (+0000) Subject: created. X-Git-Url: http://git.chise.org/gitweb/?a=commitdiff_plain;h=4e29f347c4c332068dfb46966a39f10fb92cc2cc;p=chise%2Fperl.git created. --- diff --git a/Chise_utils/scripts/sample.pl b/Chise_utils/scripts/sample.pl new file mode 100644 index 0000000..5548e96 --- /dev/null +++ b/Chise_utils/scripts/sample.pl @@ -0,0 +1,109 @@ +#!/usr/bin/perl -w + +use Getopt::Long; +use strict; +use vars qw($atr $value $char + $opt_map $opt_rev_map $opt_mapfrom $opt_mapto + $opt_atr $opt_allatr $opt_showatr + $opt_query + $opt_help + ); +use Chise_utils ':all'; + +my $usage=< | --map | + -r | + --mapfrom | + --mapto | + -q | + --show-attribute | + -h | --help | + -a= | + -aa ] + -q + ex. of + total-strokes==8 means + the attribute of total-strokes exactly matches to 8. + ids-parts=~矢 means + the attribute of ids-parts contains the string 矢. + total-strokes==8,ids-parts=~矢 means both at the same time. + -a get of + -aa get all attributes of +EOF + +&GetOptions("mapto=s"=>\$opt_mapto, + "mapfrom=s"=>\$opt_mapfrom, + "m=s"=>\$opt_map, + "r=s"=>\$opt_rev_map, + "a=s"=>\$opt_atr, + "aa"=>\$opt_allatr, + "show-attribute"=>\$opt_showatr, + "q"=>\$opt_query, + "help",\$opt_help, + "h",\$opt_help); + +if($opt_help + or !((($opt_map or $opt_rev_map or $opt_mapfrom or $opt_mapto) and @ARGV==0) + or($opt_showatr and @ARGV==0) + or @ARGV==1 + ) + ){ + print $usage; + exit 1; +}else{ + $char=shift or $char=""; +} + +if($opt_mapfrom){ + $opt_map="<=".$opt_mapfrom; +}elsif($opt_mapto){ + $opt_map="=>".$opt_mapto; +} + +if($opt_map){ + if(&get_db($opt_map)){ + foreach $char (sort keys %{$chardb{$opt_map}}){ + if($chardb{$opt_map}->{$char}){ + print $char,"\t",$chardb{$opt_map}->{$char},"\n"; + } + } + }else{ + print STDERR "No map for $opt_map.\n"; + } +}elsif($opt_rev_map){ + if(&get_reverse_db($opt_rev_map)){ + foreach $char (sort keys %{$reverse_chardb{$opt_rev_map}}){ + if($reverse_chardb{$opt_rev_map}->{$char}){ + print $char,"\t",$reverse_chardb{$opt_rev_map}->{$char},"\n"; + } + } + }else{ + print STDERR "No map for $opt_rev_map.\n"; + } +}elsif($opt_allatr){ + $char=&de_er($char) if($char=~/\d/); + print $char,"\n"; + foreach $atr (sort keys %db){ + if($value=&get_char_attribute($char,$atr)){ + print " ",$atr,":",$value,"\n"; + } + } +}elsif($opt_atr){ + $char=&de_er($char) if($char=~/\d/); + print $char,"\n"; + print " ",$opt_atr,":",&get_char_attribute($char,$opt_atr),"\n"; +}elsif($opt_showatr){ +# print "In DB\n"; + foreach $atr (sort keys %db){ + print " ",$atr,"\n"; + } +# print "In reverse DB\n"; +# foreach $atr (sort keys %reverse_db){ +# print " ",$atr,"\n"; +# } +}elsif($opt_query){ + my $query=$char; + print join "\n",&get_chars_for($query),"\n"; +} + +exit 0;