[Splunk] 全角カタカナを半角カタカナに変換する

見出し



文字列内の全角カタカナを、半角にしたいことがありました。例えば、
「東京ディズニーリゾート オフィシャルホテル」よりも
「東京ディズニーリゾート オフィシャルホテル」の方が、省スペースで扱いやすいですからね。

さて、ExcelならASC/JIS関数という秀逸な変換が存在しますが、これがSplunkでは難しい。

仕方がないので、全種類の文字に対して1つずつreplaceを実行する、という荒業で解決しました。
本当は正規表現でうまく処理したかったのですが、いい方法がどうしても思いつきませんでした。
このSPLは、50音/濁音/半濁音/拗音/促音/長音/中黒に対応しています。長い…
ちなみに、同じ方法で英文字や数字も半角に変換できると思います。
...
| eval フィールド名 = replace(フィールド名, "ア", "ア")
| eval フィールド名 = replace(フィールド名, "イ", "イ")
| eval フィールド名 = replace(フィールド名, "ウ", "ウ")
| eval フィールド名 = replace(フィールド名, "エ", "エ")
| eval フィールド名 = replace(フィールド名, "オ", "オ")
| eval フィールド名 = replace(フィールド名, "カ", "カ")
| eval フィールド名 = replace(フィールド名, "キ", "キ")
| eval フィールド名 = replace(フィールド名, "ク", "ク")
| eval フィールド名 = replace(フィールド名, "ケ", "ケ")
| eval フィールド名 = replace(フィールド名, "コ", "コ")
| eval フィールド名 = replace(フィールド名, "サ", "サ")
| eval フィールド名 = replace(フィールド名, "シ", "シ")
| eval フィールド名 = replace(フィールド名, "ス", "ス")
| eval フィールド名 = replace(フィールド名, "セ", "セ")
| eval フィールド名 = replace(フィールド名, "ソ", "ソ")
| eval フィールド名 = replace(フィールド名, "タ", "タ")
| eval フィールド名 = replace(フィールド名, "チ", "チ")
| eval フィールド名 = replace(フィールド名, "ツ", "ツ")
| eval フィールド名 = replace(フィールド名, "テ", "テ")
| eval フィールド名 = replace(フィールド名, "ト", "ト")
| eval フィールド名 = replace(フィールド名, "ナ", "ナ")
| eval フィールド名 = replace(フィールド名, "ニ", "ニ")
| eval フィールド名 = replace(フィールド名, "ヌ", "ヌ")
| eval フィールド名 = replace(フィールド名, "ネ", "ネ")
| eval フィールド名 = replace(フィールド名, "ノ", "ノ")
| eval フィールド名 = replace(フィールド名, "ハ", "ハ")
| eval フィールド名 = replace(フィールド名, "ヒ", "ヒ")
| eval フィールド名 = replace(フィールド名, "フ", "フ")
| eval フィールド名 = replace(フィールド名, "ヘ", "ヘ")
| eval フィールド名 = replace(フィールド名, "ホ", "ホ")
| eval フィールド名 = replace(フィールド名, "マ", "マ")
| eval フィールド名 = replace(フィールド名, "ミ", "ミ")
| eval フィールド名 = replace(フィールド名, "ム", "ム")
| eval フィールド名 = replace(フィールド名, "メ", "メ")
| eval フィールド名 = replace(フィールド名, "モ", "モ")
| eval フィールド名 = replace(フィールド名, "ヤ", "ヤ")
| eval フィールド名 = replace(フィールド名, "ユ", "ユ")
| eval フィールド名 = replace(フィールド名, "ヨ", "ヨ")
| eval フィールド名 = replace(フィールド名, "ラ", "ラ")
| eval フィールド名 = replace(フィールド名, "リ", "リ")
| eval フィールド名 = replace(フィールド名, "ル", "ル")
| eval フィールド名 = replace(フィールド名, "レ", "レ")
| eval フィールド名 = replace(フィールド名, "ロ", "ロ")
| eval フィールド名 = replace(フィールド名, "ワ", "ワ")
| eval フィールド名 = replace(フィールド名, "ヲ", "ヲ")
| eval フィールド名 = replace(フィールド名, "ン", "ン")
| eval フィールド名 = replace(フィールド名, "ガ", "ガ")
| eval フィールド名 = replace(フィールド名, "ギ", "ギ")
| eval フィールド名 = replace(フィールド名, "グ", "グ")
| eval フィールド名 = replace(フィールド名, "ゲ", "ゲ")
| eval フィールド名 = replace(フィールド名, "ゴ", "ゴ")
| eval フィールド名 = replace(フィールド名, "ザ", "ザ")
| eval フィールド名 = replace(フィールド名, "ジ", "ジ")
| eval フィールド名 = replace(フィールド名, "ズ", "ズ")
| eval フィールド名 = replace(フィールド名, "ゼ", "ゼ")
| eval フィールド名 = replace(フィールド名, "ゾ", "ゾ")
| eval フィールド名 = replace(フィールド名, "ダ", "ダ")
| eval フィールド名 = replace(フィールド名, "ヂ", "ヂ")
| eval フィールド名 = replace(フィールド名, "ヅ", "ヅ")
| eval フィールド名 = replace(フィールド名, "デ", "デ")
| eval フィールド名 = replace(フィールド名, "ド", "ド")
| eval フィールド名 = replace(フィールド名, "バ", "バ")
| eval フィールド名 = replace(フィールド名, "ビ", "ビ")
| eval フィールド名 = replace(フィールド名, "ブ", "ブ")
| eval フィールド名 = replace(フィールド名, "ベ", "ベ")
| eval フィールド名 = replace(フィールド名, "ボ", "ボ")
| eval フィールド名 = replace(フィールド名, "パ", "パ")
| eval フィールド名 = replace(フィールド名, "ピ", "ピ")
| eval フィールド名 = replace(フィールド名, "プ", "プ")
| eval フィールド名 = replace(フィールド名, "ペ", "ペ")
| eval フィールド名 = replace(フィールド名, "ポ", "ポ")
| eval フィールド名 = replace(フィールド名, "ァ", "ァ")
| eval フィールド名 = replace(フィールド名, "ィ", "ィ")
| eval フィールド名 = replace(フィールド名, "ゥ", "ゥ")
| eval フィールド名 = replace(フィールド名, "ェ", "ェ")
| eval フィールド名 = replace(フィールド名, "ォ", "ォ")
| eval フィールド名 = replace(フィールド名, "ッ", "ッ")
| eval フィールド名 = replace(フィールド名, "ャ", "ャ")
| eval フィールド名 = replace(フィールド名, "ュ", "ュ")
| eval フィールド名 = replace(フィールド名, "ョ", "ョ")
| eval フィールド名 = replace(フィールド名, "ー", "ー")
| eval フィールド名 = replace(フィールド名, "・", "・")