Next: Patsubst, Previous: Substr, Up: 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
は引数を与えたときだけ認識されます。