{ i = 1; len = length( $0 ); while ( i <= len ) { if ( match( substr( $0, i, 1 ), /[。-゚]/ ) ) { i = han2zen( substr( $0, i, 2 ), i ); } else { if ( match( substr( $0, i, 1 ), /[!-~]/ ) ) { printf( "%s", substr( $0, i, 1 ) ); i++; } else { printf( "%s", substr( $0, i, 2 ) ); i = i + 2; } } } printf( "\n" ); } function han2zen( string, next_index ) { # ガ行 if ( string == "ガ" ) { printf( "ガ" ); return next_index + 2; } if ( string == "ギ" ) { printf( "ギ" ); return next_index + 2; } if ( string == "グ" ) { printf( "グ" ); return next_index + 2; } if ( string == "ゲ" ) { printf( "ゲ" ); return next_index + 2; } if ( string == "ゴ" ) { printf( "ゴ" ); return next_index + 2; } # ザ行 if ( string == "ザ" ) { printf( "ザ" ); return next_index + 2; } if ( string == "ジ" ) { printf( "ジ" ); return next_index + 2; } if ( string == "ズ" ) { printf( "ズ" ); return next_index + 2; } if ( string == "ゼ" ) { printf( "ゼ" ); return next_index + 2; } if ( string == "ゾ" ) { printf( "ゾ" ); return next_index + 2; } # ダ行 if ( string == "ダ" ) { printf( "ダ" ); return next_index + 2; } if ( string == "ヂ" ) { printf( "ヂ" ); return next_index + 2; } if ( string == "ヅ" ) { printf( "ヅ" ); return next_index + 2; } if ( string == "デ" ) { printf( "デ" ); return next_index + 2; } if ( string == "ド" ) { printf( "ド" ); return next_index + 2; } # バ行 if ( string == "バ" ) { printf( "バ" ); return next_index + 2; } if ( string == "ビ" ) { printf( "ビ" ); return next_index + 2; } if ( string == "ブ" ) { printf( "ブ" ); return next_index + 2; } if ( string == "ベ" ) { printf( "ベ" ); return next_index + 2; } if ( string == "ボ" ) { printf( "ボ" ); return next_index + 2; } # パ行 if ( string == "パ" ) { printf( "パ" ); return next_index + 2; } if ( string == "ピ" ) { printf( "ピ" ); return next_index + 2; } if ( string == "プ" ) { printf( "プ" ); return next_index + 2; } if ( string == "ペ" ) { printf( "ぺ" ); return next_index + 2; } if ( string == "ポ" ) { printf( "ポ" ); return next_index + 2; } # ヴ if ( string == "ヴ" ) { printf( "ヴ" ); return next_index + 2; } string = substr( string, 1, 1 ); # ア行(小文字) if ( string == "ァ" ) { printf( "ァ" ); return next_index + 1; } if ( string == "ィ" ) { printf( "ィ" ); return next_index + 1; } if ( string == "ゥ" ) { printf( "ゥ" ); return next_index + 1; } if ( string == "ェ" ) { printf( "ェ" ); return next_index + 1; } if ( string == "ォ" ) { printf( "ォ" ); return next_index + 1; } # ア行(大文字) if ( string == "ア" ) { printf( "ア" ); return next_index + 1; } if ( string == "イ" ) { printf( "イ" ); return next_index + 1; } if ( string == "ウ" ) { printf( "ウ" ); return next_index + 1; } if ( string == "エ" ) { printf( "エ" ); return next_index + 1; } if ( string == "オ" ) { printf( "オ" ); return next_index + 1; } # カ行 if ( string == "カ" ) { printf( "カ" ); return next_index + 1; } if ( string == "キ" ) { printf( "キ" ); return next_index + 1; } if ( string == "ク" ) { printf( "ク" ); return next_index + 1; } if ( string == "ケ" ) { printf( "ケ" ); return next_index + 1; } if ( string == "コ" ) { printf( "コ" ); return next_index + 1; } # サ行 if ( string == "サ" ) { printf( "サ" ); return next_index + 1; } if ( string == "シ" ) { printf( "シ" ); return next_index + 1; } if ( string == "ス" ) { printf( "ス" ); return next_index + 1; } if ( string == "セ" ) { printf( "セ" ); return next_index + 1; } if ( string == "ソ" ) { printf( "ソ\" ); return next_index + 1; } # タ行 if ( string == "タ" ) { printf( "タ" ); return next_index + 1; } if ( string == "チ" ) { printf( "チ" ); return next_index + 1; } if ( string == "ツ" ) { printf( "ツ" ); return next_index + 1; } if ( string == "テ" ) { printf( "テ" ); return next_index + 1; } if ( string == "ト" ) { printf( "ト" ); return next_index + 1; } # ナ行 if ( string == "ナ" ) { printf( "ナ" ); return next_index + 1; } if ( string == "ニ" ) { printf( "ニ" ); return next_index + 1; } if ( string == "ヌ" ) { printf( "ヌ" ); return next_index + 1; } if ( string == "ネ" ) { printf( "ネ" ); return next_index + 1; } if ( string == "ノ" ) { printf( "ノ" ); return next_index + 1; } # ハ行 if ( string == "ハ" ) { printf( "ハ" ); return next_index + 1; } if ( string == "ヒ" ) { printf( "ヒ" ); return next_index + 1; } if ( string == "フ" ) { printf( "フ" ); return next_index + 1; } if ( string == "ヘ" ) { printf( "ヘ" ); return next_index + 1; } if ( string == "ホ" ) { printf( "ホ" ); return next_index + 1; } # マ行 if ( string == "マ" ) { printf( "マ" ); return next_index + 1; } if ( string == "ミ" ) { printf( "ミ" ); return next_index + 1; } if ( string == "ム" ) { printf( "ム" ); return next_index + 1; } if ( string == "メ" ) { printf( "メ" ); return next_index + 1; } if ( string == "モ" ) { printf( "モ" ); return next_index + 1; } # ヤ行(小文字) if ( string == "ャ" ) { printf( "ャ" ); return next_index + 1; } if ( string == "ュ" ) { printf( "ュ" ); return next_index + 1; } if ( string == "ョ" ) { printf( "ョ" ); return next_index + 1; } # ヤ行(大文字) if ( string == "ヤ" ) { printf( "ヤ" ); return next_index + 1; } if ( string == "ユ" ) { printf( "ユ" ); return next_index + 1; } if ( string == "ヨ" ) { printf( "ヨ" ); return next_index + 1; } # ラ行 if ( string == "ラ" ) { printf( "ラ" ); return next_index + 1; } if ( string == "リ" ) { printf( "リ" ); return next_index + 1; } if ( string == "ル" ) { printf( "ル" ); return next_index + 1; } if ( string == "レ" ) { printf( "レ" ); return next_index + 1; } if ( string == "ロ" ) { printf( "ロ" ); return next_index + 1; } # ワ行 if ( string == "ワ" ) { printf( "ワ" ); return next_index + 1; } if ( string == "ヲ" ) { printf( "ヲ" ); return next_index + 1; } # ン if ( string == "ン" ) { printf( "ン" ); return next_index + 1; } # 句点 if ( string == "。" ) { printf( "。" ); return next_index + 1; } # 読点 if ( string == "、" ) { printf( "、" ); return next_index + 1; } # かぎ括弧 if ( string == "「" ) { printf( "「" ); return next_index + 1; } if ( string == "」" ) { printf( "」" ); return next_index + 1; } # 中黒 if ( string == "・" ) { printf( "・" ); return next_index + 1; } # 濁点、半濁点 if ( string == "゙" ) { printf( "゛" ); return next_index + 1; } if ( string == "゚" ) { printf( "゜" ); return next_index + 1; } # 長音記号 if ( string == "ー" ) { printf( "ー" ); return next_index + 1; } # 小文字ッ if ( string == "ッ" ) { printf( "ッ" ); return next_index + 1; } # その他 printf( "%s", string ); return next_index + 1; }