キリル文字をラテン文字に変換する

wikipedia:キリル文字
wikipedia:ラテン文字


リスト : cyr2lat.txt

А,a
а,a
Б,b
б,b
В,v
в,v
Г,g
г,g
Д,d
д,d
Е,e
е,e
Ж,zh
ж,zh
З,z
з,z
И,i
и,i
Й,y
й,y
К,k
к,k
Л,l
л,l
М,m
м,m
Н,n
н,n
О,o
о,o
П,p
п,p
Р,r
р,r
С,s
с,s
Т,t
т,t
У,u
у,u
Ф,f
ф,f
Х,kh
х,kh
Ц,ts
ц,ts
Ч,ch
ч,ch
Ш,sh
ш,sh
Щ,shch
щ,shch
Ь,
ь,
Ю,yu
ю,yu
Я,ya
я,ya

参照したURL:
http://www.pbs.org/weta/faceofrussia/reference/cyrillic.html
http://www.ancientscripts.com/cyrillic.html


リスト : cyr2lat.pl

#!/usr/bin/env perl

use Encode;

open(FILE,"cyr2lat.txt") || die "cyr2lat.txt not found.";

while(<FILE>){
  chomp;
  ($cyr,$lat) = split(/,/);
  $cyr2lat{$cyr} = $lat;
}

foreach $word (@ARGV){
  print "$word\n";
  utf8::decode($word);
  foreach $char (split //, $word){
    utf8::encode($char);
    if( $cyr2lat{$char} ){
      print $cyr2lat{$char};
    }else{
      print $char;
    }
  }
  print "\n";
}

参照したURL:
http://d.hatena.ne.jp/sleepy_yoshi/20080429/p1


実行結果

$ ./cyr2lat.pl Аве Мария Д. Каччини
Аве
ave
Мария
mariya
Д.
d.
Каччини
kachchini


Аве Мария Д. Каччини

awk(gawk4使用)

awkで書いてみる


リスト : cyr2lat.awk

#!/usr/bin/gawk -f
BEGIN{

  FS = ",";
  while( getline < "cyr2lat.txt" ){
    cyr2lat[$1] = $2;
  }

  for(i=1;i<ARGC;i++){
    print ARGV[i];
    num = split(ARGV[i],word,"")
    for(j=1; j<=num; j++){
      printf cyr2lat[word[j]];
    }
    print "";
  }

}


実行結果

$ ./cyr2lat.awk Аве Мария Д. Каччини
Аве
ave
Мария
mariya
Д.
d
Каччини
kachchini

参照したURL:
http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_290