次: Patsubst, 前: Substr, 上: Text handling
translit(string, chars, replacement)
stringの各文字のうちcharsに出て来る文字をそれぞれ replacement中で同じ位置にある文字に置き換えたものに展開されます。
replacementがcharsより短いときは 余分な文字は展開後のテキストから削除されます。 replacementを省略すると展開後のテキストは stringからcharsに含まれる文字すべてを削除したものになります。
charsとreplacementのどちらにも文字範囲を含めることができます。 たとえば`a-z' (すべての小文字アルファベット)や `0-9' (すべての数字)などです。 charsやreplacementにダッシュ`-'そのものを含めるときは 最初か最後に置いてください。
範囲の最後の文字が最初の文字より`小さい'場合もエラーではありません。 そういうケースでは範囲が逆に広がります。 つまり`9-0'は文字列`9876543210'を意味します。
translit(`GNUs not Unix', `A-Z') =>s not nix translit(`GNUs not Unix', `a-z', `A-Z') =>GNUS NOT UNIX translit(`GNUs not Unix', `A-Z', `z-a') =>tmfs not fnix
最初の例は大文字のアルファベットをすべて削除します。 2番目の例は小文字を大文字に変換します。 3番目の例は大文字すべてを小文字に変換しながら`反転'させます。 使用頻度は最初の2つの例のほうがはるかに高いです。
組み込みマクロtranslit
は引数を与えたときだけ認識されます。