次のルールでカタカナをアルファベットに変換
カタカナの「ニ」と漢字の「二」の
違いに注意。
katakana.kana
ア,_a
イ,_i
ウ,_u
エ,_e
オ,_o
カ,ka
キ,ki
ク,ku
ケ,ke
コ,ko
サ,sa
シ,si
ス,su
セ,se
ソ,so
タ,ta
チ,ti
ツ,tu
テ,te
ト,to
ナ,na
ニ,ni
ヌ,nu
ネ,ne
ノ,no
ハ,ha
ヒ,hi
フ,hu
へ,he
ホ,ho
マ,ma
ミ,mi
ム,mu
メ,me
モ,mo
ヤ,ya
ユ,yu
ヨ,yo
ラ,ra
リ,ri
ル,ru
レ,re
ロ,ro
ワ,wa
ヲ,wo
ン,nn
ァ,la
ィ,li
ゥ,lu
ェ,le
ォ,lo
ガ,ga
ギ,gi
グ,gu
ゲ,ge
ゴ,go
ザ,za
ジ,zi
ズ,zu
ゼ,ze
ゾ,zo
ダ,da
ヂ,di
ヅ,du
デ,de
ド,do
バ,ba
ビ,bi
ブ,bu
ベ,be
ボ,bo
パ,pa
ピ,pi
プ,pu
ぺ,pe
ポ,po
ャ,lya
ュ,lyu
ョ,lyo
ヮ,lwa
ッ,ltu
ヴ,va
ヵ,lka
ヶ,lke
sedの場合sjisダメ文字の影響でうまくいかないい場合は、以下のrubyをつかう。
awk -F, 'BEGIN{print "sed \""}{print "s\/"$1"\/"$2"/g"";"}END{print "\""}' ka
takana.kana > kana.sed
sedでsjisダメ文字の影響でうまくいかない場合は、以下のrubyをつかう。
ruby -KSとして実行すのがポイント。
例えば
ruby -KS katakanatoalpha.rb
!#/bin/ruby -KS a=File.open(ARGV[0]);a.each{|str| str=str.gsub(/ア/,"_a") str=str.gsub(/イ/,"_i") str=str.gsub(/ウ/,"_u") str=str.gsub(/エ/,"_e") str=str.gsub(/オ/,"_o") str=str.gsub(/カ/,"ka") str=str.gsub(/キ/,"ki") str=str.gsub(/ク/,"ku") str=str.gsub(/ケ/,"ke") str=str.gsub(/コ/,"ko") str=str.gsub(/サ/,"sa") str=str.gsub(/シ/,"si") str=str.gsub(/ス/,"su") str=str.gsub(/セ/,"se") str=str.gsub(/ソ/,"so") str=str.gsub(/タ/,"ta") str=str.gsub(/チ/,"ti") str=str.gsub(/ツ/,"tu") str=str.gsub(/テ/,"te") str=str.gsub(/ト/,"to") str=str.gsub(/ナ/,"na") str=str.gsub(/ニ/,"ni") str=str.gsub(/ヌ/,"nu") str=str.gsub(/ネ/,"ne") str=str.gsub(/ノ/,"no") str=str.gsub(/ハ/,"ha") str=str.gsub(/ヒ/,"hi") str=str.gsub(/フ/,"hu") str=str.gsub(/へ/,"he") str=str.gsub(/ホ/,"ho") str=str.gsub(/マ/,"ma") str=str.gsub(/ミ/,"mi") str=str.gsub(/ム/,"mu") str=str.gsub(/メ/,"me") str=str.gsub(/モ/,"mo") str=str.gsub(/ヤ/,"ya") str=str.gsub(/ユ/,"yu") str=str.gsub(/ヨ/,"yo") str=str.gsub(/ラ/,"ra") str=str.gsub(/リ/,"ri") str=str.gsub(/ル/,"ru") str=str.gsub(/レ/,"re") str=str.gsub(/ロ/,"ro") str=str.gsub(/ワ/,"wa") str=str.gsub(/ヲ/,"wo") str=str.gsub(/ン/,"nn") str=str.gsub(/ァ/,"la") str=str.gsub(/ィ/,"li") str=str.gsub(/ゥ/,"lu") str=str.gsub(/ェ/,"le") str=str.gsub(/ォ/,"lo") str=str.gsub(/ガ/,"ga") str=str.gsub(/ギ/,"gi") str=str.gsub(/グ/,"gu") str=str.gsub(/ゲ/,"ge") str=str.gsub(/ゴ/,"go") str=str.gsub(/ザ/,"za") str=str.gsub(/ジ/,"zi") str=str.gsub(/ズ/,"zu") str=str.gsub(/ゼ/,"ze") str=str.gsub(/ゾ/,"zo") str=str.gsub(/ダ/,"da") str=str.gsub(/ヂ/,"di") str=str.gsub(/ヅ/,"du") str=str.gsub(/デ/,"de") str=str.gsub(/ド/,"do") str=str.gsub(/バ/,"ba") str=str.gsub(/ビ/,"bi") str=str.gsub(/ブ/,"bu") str=str.gsub(/ベ/,"be") str=str.gsub(/ボ/,"bo") str=str.gsub(/パ/,"pa") str=str.gsub(/ピ/,"pi") str=str.gsub(/プ/,"pu") str=str.gsub(/ぺ/,"pe") str=str.gsub(/ポ/,"po") str=str.gsub(/ャ/,"lya") str=str.gsub(/ュ/,"lyu") str=str.gsub(/ョ/,"lyo") str=str.gsub(/ヮ/,"lwa") str=str.gsub(/ッ/,"ltu") str=str.gsub(/ヴ/,"va") str=str.gsub(/ヵ/,"lka") str=str.gsub(/ヶ/,"lke") puts str}
$ awk -F, 'BEGIN{print "a=File.open(ARGV[0]);a.each{|str|"}{print "str=str.gsub
(\/"$1"\/,\""$2"\")"}END{print "puts str}"}' katakana.kana > katakana.rb
awk -F, 'BEGIN{print "sed \""}{print "s\/"$1"\/"$2"/g"";"}END{print "\""}' ka
takana.kana > kana.sed
$ awk -F, 'BEGIN{print "a=File.open(ARGV[0]);a.each{|str|"}{print "str=str.gsub
(\/"$1"\/,\""$2"\")"}END{print "puts str}"}' katakana.kana > katakana.rb
ひらがな
!#/bin/ruby -KS a=File.open(ARGV[0]);a.each{|str| str=str.gsub(/あ/,"_a") str=str.gsub(/い/,"_i") str=str.gsub(/う/,"_u") str=str.gsub(/え/,"_e") str=str.gsub(/お/,"_o") str=str.gsub(/か/,"ka") str=str.gsub(/き/,"ki") str=str.gsub(/く/,"ku") str=str.gsub(/け/,"ke") str=str.gsub(/こ/,"ko") str=str.gsub(/さ/,"sa") str=str.gsub(/し/,"si") str=str.gsub(/す/,"su") str=str.gsub(/せ/,"se") str=str.gsub(/そ/,"so") str=str.gsub(/た/,"ta") str=str.gsub(/ち/,"ti") str=str.gsub(/つ/,"tu") str=str.gsub(/て/,"te") str=str.gsub(/と/,"to") str=str.gsub(/な/,"na") str=str.gsub(/に/,"ni") str=str.gsub(/ぬ/,"nu") str=str.gsub(/ね/,"ne") str=str.gsub(/の/,"no") str=str.gsub(/は/,"ha") str=str.gsub(/ひ/,"hi") str=str.gsub(/ふ/,"hu") str=str.gsub(/へ/,"he") str=str.gsub(/ほ/,"ho") str=str.gsub(/ま/,"ma") str=str.gsub(/み/,"mi") str=str.gsub(/む/,"mu") str=str.gsub(/め/,"me") str=str.gsub(/も/,"mo") str=str.gsub(/や/,"ya") str=str.gsub(/ゆ/,"yu") str=str.gsub(/よ/,"yo") str=str.gsub(/ら/,"ra") str=str.gsub(/り/,"ri") str=str.gsub(/る/,"ru") str=str.gsub(/れ/,"re") str=str.gsub(/ろ/,"ro") str=str.gsub(/わ/,"wa") str=str.gsub(/を/,"wo") str=str.gsub(/ん/,"nn") str=str.gsub(/ぁ/,"la") str=str.gsub(/ぃ/,"li") str=str.gsub(/ぅ/,"lu") str=str.gsub(/ぇ/,"le") str=str.gsub(/ぉ/,"lo") str=str.gsub(/が/,"ga") str=str.gsub(/ぎ/,"gi") str=str.gsub(/ぐ/,"gu") str=str.gsub(/げ/,"ge") str=str.gsub(/ご/,"go") str=str.gsub(/ざ/,"za") str=str.gsub(/じ/,"zi") str=str.gsub(/ず/,"zu") str=str.gsub(/ぜ/,"ze") str=str.gsub(/ぞ/,"zo") str=str.gsub(/だ/,"da") str=str.gsub(/ぢ/,"di") str=str.gsub(/づ/,"du") str=str.gsub(/で/,"de") str=str.gsub(/ど/,"do") str=str.gsub(/ば/,"ba") str=str.gsub(/び/,"bi") str=str.gsub(/ぶ/,"bu") str=str.gsub(/べ/,"be") str=str.gsub(/ぼ/,"bo") str=str.gsub(/ぱ/,"pa") str=str.gsub(/ぴ/,"pi") str=str.gsub(/ぷ/,"pu") str=str.gsub(/ぺ/,"pe") str=str.gsub(/ぽ/,"po") str=str.gsub(/ゃ/,"lya") str=str.gsub(/ゅ/,"lyu") str=str.gsub(/ょ/,"lyo") str=str.gsub(/ゎ/,"lwa") str=str.gsub(/っ/,"ltu") str=str.gsub(/ヴ/,"va") str=str.gsub(/ヵ/,"lka") str=str.gsub(/ヶ/,"lke") str=str.gsub(/ー/,"-") puts str}