総合手引 | セクション 1 | English | Deutsch | オプション |
以下のオプションが利用できます:
| |
string1
に含まれる文字の補集合を表します。
つまり
" | |
| |
| |
| |
入力から、 string1 に含まれる文字を削除します。 | |
| |
最後の引数 ( string1 か string2 のどちらか) に含まれている同一の文字が、入力の中に連続して現れるとき、 それを 1 つの文字に圧縮します。 この圧縮は、全ての削除や変換が終わった後に行われます。 | |
| |
出力がバッファリングされないことを保証します。 | |
書式の最初の形式では、 string1 に含まれる文字は、 string1 の 1 文字目は string2 の 1 文字目と置き換え...というように string2 に置き換えられます。 もし string1 が string2 よりも長い場合は、 string2 の最後の文字が、 string1 と対応させるのに足りない分だけ続いているものとみなされます。
書式の 2 番目の形式では、 string1 に含まれる文字は、入力から削除されます。
書式の 3 番目の形式では、
string1
に含まれる文字は、
書式の 4 番目の形式では、
string1
に含まれる文字は入力から削除され、
string2
に含まれる文字は
string1, string2 の文字の集合を指定するのに、以下のような記述方法が利用できます:
character | |||||||||||||||||||||||
以下で示したものを除く、その文字自身を表す 通常の文字 (キャラクタ) です。 | |||||||||||||||||||||||
\octal | バックスラッシュに続き、1〜3 桁の 8 進数が続いたものは、 その値を符号化した文字を表現します。 この 8 進数の並びに続いて 数字を文字として指定したい場合には、8 進数の並びが 3 桁と なるように、8 進数の上位桁 (左) に 0 を埋めてください。 | ||||||||||||||||||||||
\character | |||||||||||||||||||||||
バックスラッシュに続く、特定の特殊な文字は、特殊な値に対応しています。
これら以外のバックスラッシュに続く文字は、その文字自身に対応します。 | |||||||||||||||||||||||
c-c |
範囲の両端を非 8 進数で指定すると、文字の範囲を表します。
この範囲は、両端を含む、照合順序で定義された昇順のものです。
片方もしくは両方の端点が 8 進数シーケンスの場合、
コード化された値の範囲を表します。
この範囲は、両端を含みます。
現在の実装による範囲式の解釈が、以前の実装と違う事に関する重要な注記は、 以下の 互換性 セクションを参照してください。 | ||||||||||||||||||||||
[:class:] | |||||||||||||||||||||||
定義された文字クラスに属する、全ての文字を表します。
クラス名は以下の通りです:
"[:lower:]" が string1 に登場し、 "[:upper:]" が string2 で相対的に同じ位置に登場する場合、現在のロケールにおける LC_CTYPE カテゴリでの toupper マッピングの文字列ペアを表現します。 "[:upper:]" が string1 に登場し、 "[:lower:]" が string2 で相対的に同じ位置に登場する場合、現在のロケールにおける LC_CTYPE カテゴリでの tolower マッピングの文字列ペアを表現します。 大文字小文字の変換の例外を除けば、クラス内の文字の順序は特定されていません。 どのような ASCII 文字が、これらのクラスに含まれているのかという情報を 調べたい場合には、 ctype(3) および関連マニュアルを参照してください。 | |||||||||||||||||||||||
[=equiv=] | |||||||||||||||||||||||
equiv と同じ同値関係クラスに属する全ての文字を表します。 これらはエンコード値の順序となります。 | |||||||||||||||||||||||
[#*n] | # で指定された n 個の文字の繰り返しを表現します。 この表現は、 string2 で指定されたときのみ有効です。 もし n が省略された場合、または 0 の場合は、 string2 が string1 の長さを満たすような、十分大きな値として解釈されます。 n は、0 で始まる場合には 8 進数として、そうでない場合には 10 進数として 解釈されます。 | ||||||||||||||||||||||
file1 に含まれる単語 (文字の最大長の並び) のリストを、 各行につき 1 つずつ出力します。
file1 の内容を大文字に変換します。
(これはすべてのロケールで正しく動作するため、 Unix の伝統的な慣用句である "tr a-z A-Z" よりも好ましいです)
表示できない文字を file1 から削除します。
発音区分記号を、 ‘e’ のアクセント付きバリアントすべてから削除します。
tr q[=e=]q qeq
古くからの BSD の実装および POSIX 標準では、文字の範囲指定には "c-c" という文法を用いますが、古い System V の実装では "[c-c]" を用いています。 System V のシェルスクリプトは、文字の置換を行おうとする 場合にはうまく動作するはずです。 つまり、 "tr [a-z] [A-Z]" と指定した場合には、 string1 の ‘amp;[’ が string2 の ‘amp;[’ に変換されるため、うまく動作します。 しかし、シェルスクリプトが、 "tr -d [a-z]", というコマンドのように文字の削除や圧縮を行う場合には、 ‘amp;[’ と ‘amp;]’ の文字が削除や圧縮の対象に含まれてしまいます。 古い実装の System V ではこのようには動作しません。 さらに、 ‘a’, ‘-’, ‘z’ という 3 つの文字を表現するのに、 "a-z" と記述するような、その並びに依存しているあらゆるスクリプトは、 "a\-z" と書き直す必要があります。
tr ユーティリティは昔から、入力における NUL バイトの操作を 禁止されていました。 さらに、入力から NUL を取り除いていました。 この実装では、この振る舞いはバグとみなされ、削除されました。
tr
ユーティリティは昔から、たとえば、2 つの文字列が指定されない限り
string2
が
string1
よりも短い場合に
string2
の最後の文字が複製される機能は、
POSIX では許されていますが必須ではないことに注意して下さい。
他の POSIX システムへの可搬性のあるシェルスクリプトを
作ろうとするならば、この振る舞いを当てにせずに、
"[#*]"
という表現を使うべきです。
TR (1) | July 23, 2004 |
総合手引 | セクション 1 | English | Deutsch | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | How's my programming? Call 1-800-DEV-NULL | ” |