ローマ字をひらがなに変換するスクリプト r2hira.sed ver.1.17 written by Seiji Fujita http://userweb.alles.or.jp/sfujita/ ----------------------------------------------------------- 【使い方】  ・半角/全角英文字のローマ字で記述したファイルを用意して、以下のコマンド   でひらがなに変換します。   sed -f r2hira.sed 入力ファイル名 [> 出力ファイル名] または   sed -f r2hira.sed < 入力ファイル名 [> 出力ファイル名]  出力ファイルへリダイレクトしない場合は、標準出力(通常はディスプレイ)   に出力されます( 明示的に 「> CON」と指定するのと同じ)。  ・入力ファイルを用意せずに、直接コンソール入力を変換させたり、パイプ処理   で使うことも可能です。 sed -f r2hira.sed < con [> 出力ファイル名] AnyCommand | sed -f r2hira.sed [> 出力ファイル名]  ・基本コマンドだけで記述されているため、標準的な sed で利用できます。 【主なローマ字の記述ルール】  0.ローマ字とひらがなの対応は(考えられる範囲で)複数考慮してあります。   但し処理を簡略化するために、「KIyoUHA」→「きょうは」のように、拗音を   小文字で記述する方法には対応していません。   具体例は以下の通り。  1.ローマ字は半角の大文字・小文字のどちらで記述してもよい。  2.拗音(ぁぃぅぇぉ)は la, li, lu, le または xa, ★, xu, ★, xo の    ように、拗音にしたい文字の直前に l または x を付加して記述する。    ★部分は以下の#3の規則を当てはめるために該当無しとします。  (ゃ、ゅ、ょ、っ もこの方法で入力可能。但し、「きゃ」の様な場合は、  kya, kila, kixa のいずれでも可。)  3.「ゐ」は xi、「ゑ」は xe と記述する。    「うぃ」は wi または uli、「うぇ」は we または ule と記述する。  4.長音「ー」はひらがなの直後に「-」を付加する。それ以外の位置にある    「-」はマイナス「−」とみなす。  5.ダッシュ「―」は「--」 、長ダッシュ「――」は「----」と記述する。  6.ら行は基本的には r を用いて ra, ri, ru, re, ro と記述する。    「りぃ」「りぇ」は ryi, lyi や、rye, lye と記述してもよい。  7.促音は子音を重ねて記述する。  (例:「なった」ならば natta と記述する。#2より naltuta でも同じ。  8.「ん」は nn または n' と記述する。   但し、変換後に n が単独で残った場合は「ん」に変換する。  9.「¥」は 「\」、「\」は「\\」と記述する。 【変換結果例】  [変換前] Ro-maji de kijutsusareta bunsyo wo hiragana ni modoshimasu.  [変換後] ろーまじ で きじゅつされた ぶんしょ を ひらがな に もどします。 【補足】  ・このスクリプトでひらがな変換した文章を全てカタカナに置換したい場合には、   以下のスクリプトをご利用ください。 ------- cut here ------ 8< ------ 8< ----- 8< ----- 8< ----- 8< ----- y/ぁあぃいぅうぇえぉおかきくけこさしすせそたちっつてとなにぬねのはひふへほまみむめもゃやゅゆょよらりるれろわゐゑをん/ァアィイゥウェエォオカキクケコサシスセソタチッツテトナニヌネノハヒフヘホマミムメモャヤュユョヨラリルレロワヰヱヲン/ y/がぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽ/ガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポ/ ------- cut here ------ 8< ------ 8< ----- 8< ----- 8< ----- 8< ----- 【応用例】  ・人名などがひらがなでインデックスされたデータベースを検索する際に、   ローマ字入力に対応するための前処理として利用する。 【応用サンプルバッチ rmgrep.bat】 ※ 環境変数 %wrk% は作業ディレクトリ ------- cut here ------ 8< ------ 8< ----- 8< ----- 8< ----- 8< ----- @echo off : grep を用いて、指定ファイル(%2) から検索文字列(%1)を検索する。 : 入力された検索文字列がローマ字の場合は対応するひらがなに変換して、 : ローマ字とひらがなとで、検索を行う。 if "%2" == "" goto MSG for %%P in (/h /H -h -H -help -HELP) do if "%%P" == "%1" goto MSG if not exist %wrk%\rmgrep.tp? goto MAIN echo y | del %wrk%\rmgrep.tp? :MAIN echo %1>%wrk%\rmgrep.tp1 echo %1>%wrk%\rmgrep.tp2 sed -f r2hira.sed %wrk%\rmgrep.tp1 >> %wrk%\rmgrep.tp2 grep -f %wrk%\rmgrep.tp2 %2 > %wrk%\rmgrep.tp3 if "%3" == "" goto STDOUT type %wrk%\rmgrep.tp3 > %3 goto POSTPROC :STDOUT type %wrk%\rmgrep.tp3 :POSTPROC echo y | del %wrk%\rmgrep.tp? goto END :MSG echo 指定ファイルからローマ字に対応したひらがな文字列を探すバッチ echo 使用方法: %0 検索文字列 検索ファイル [出力ファイル] echo . :END ------- cut here ------ 8< ------ 8< ----- 8< ----- 8< ----- 8< ----- 【履歴】 ver.1.00 一部で公開 ver.1.01 「ん」の処理にミスがあったので修正した ver.1.02 長ダッシュの処理が抜けていたので追加した ver.1.03 全角英字で記述されたローマ字も変換できるようにした ver.1.04 全角英字に対応したつもりで、小文字の処理を忘れていたので追加した ver.1.05 ゐ、ゑの変換をし忘れていたので追加した ver.1.06 追加したゐ、ゑの処理が仕様通りでなかったので修正した ver.1.07 スクリプトを見直し、可能な範囲でコンパクトにした。 ver.1.08 引用符を大文字/かぎ括弧へ変換する処理を追加した。 !,(,)を全角変換する処理が抜けていたので追加した。 一部処理をまとめてスクリプト行数を減らした。 ver.1.09 数字に挟まれたピリオド「.」「.」を「。」に変換するのを抑制した。 ※スクリプト中のバージョン表示が1.08のままであった。 ver.1.10 全角文字の<,>,/を事前に半角へ戻す処理を追加した。 文末のピリオドが正しく「。」に変換されるように修正した。 ver.1.11 数値に挟まれたコンマ「,」が「、」に変換されないようにした。 「ん」を示す「nn」と「や」を示す「ya」が並ぶ場合(例「こんや」を 「kon'ya」でなく「konnya」と記述する場合)に「んにゃ」と変換され てしまっていたので、「んや」と変換される様に修正した。 実際に「んにゃ」を表現したい場合は「nnnya」または「n'nya」と 記せばよい。 ver.1.12「ん」=「nn」のすぐ後ろにあ行「aiueo」を付加した際に、ん+な行 の様に処理されていたバグを修正した。 例:あんい anni → あんに の変換を あんい へ修正した。 ver.1.13 「.....」のように2個以上並んだピリオドの変換が不適切だったので 修正した。ピリオドは、2個以上並んでいる場合に全角のピリオドに 変換し、数値に挟まれたピリオドは半角のままとし、それ以外を句点 「。」に変換することにする。 ver.1.14 スクリプト中の "\."を "." と記述するミスによって、動作がおかし くなったのを修正。 ver.1.15 二重引用符をかぎ括弧(「」)に変換する処理を修正。      半角ピリオド関連の処理を修正。      nn +「あ行」、nn + 「にゃ」〜「にょ」の変換を修正。 ver.1.16 連続したコンマがあった場合、全てが正しく読点「、」にならなかった      点を修正 ver.1.17 ヴァ,ヴィ,ヴェ,ヴォ の拗音をひらがなに変更した。