次: Translating, 上: tr invocation
set1とset2の引数の書式は,正規表現の書式に似ています.しか し正規表現ではなく,文字のリストのみです.これらの文字列のほとんどの文 字は単にその文字自身を表しますが,利便性のため,文字列には以下でリスト アップされた速記を含むことができます.そのうち,以下で注意する set1またはset2のみでしか利用できないものもあります.
gnu trは,範囲を囲む角括弧を使用するSystem V構文をサポー トしません.その書式で指定された変換は,括弧はそれ自身に変換されるので, 期待したように動作します.しかし,期待しない動作を行なうときもあるので 避けるべきです.例えば,`tr -d '[0-9]''は数字だけでなく括弧も削除 します.
多くの歴史的に一般的なものと,範囲の使用の受け入れには移植性がありませ
ん.例えば,EBCDICのホストでは,`A-Z'の範囲を使用すると,
ASCIIでは`A'から`Z'までが不連続なので期待したよう
に動作しません.POSIXに準拠しているバージョンのtr
に依存している場合,これを回避する最善の方法は,文字クラスを使用するこ
とです(以下を参照して下さい).それ以外では,範囲内のメンバーを列挙する
ことが最も移植性がある(そして最も醜い)方法です.
upper
とlower
クラスは,昇順に展開されます.
--delete (-d)と--squeeze-repeats
(-s)オプションが両方与えられている場合,すべての文字クラスを
set2で使用することが可能です.それ以外の場合,文字クラス
lower
とupper
はset2に適用され,さらに,対応する(そ
れぞれupper
とlower
の)文字クラスがset1の位置に相対
的に同じものが指定されている場合だけそうなります.これは,大文字小文字
の変換の指定です.クラス名は以下で与えられます.無効なクラス名が与えら
れた場合,結果としてエラーとなります.
alnum
alpha
blank
cntrl
digit
graph
lower
print
punct
space
upper
xdigit