Hitachi

JP1 Version 11 JP1/Advanced Shell 


8.4.36 trコマンド(標準入力から入力された文字列を,1バイトごとに置換または削除しながら標準出力に出力する)

形式

形式1
tr [-cst] [--check-multi-byte] 文字列1 文字列2
形式2
tr -d [-c] [--check-multi-byte] 文字列1
形式3
tr -s [-c] [--check-multi-byte] 文字列1
形式4
tr -ds [-c] [--check-multi-byte] 文字列1 文字列2

機能

標準入力から入力された文字列を,1バイトごとに置換または削除しながら標準出力に出力します。

形式1でコマンドが指定された場合,標準入力から入力された文字列を置換して,その結果を標準出力に出力します。置換の際,標準入力の文字列に含まれる文字列1の1バイトごとの文字を,文字列2の1バイトごとの文字に置換します。文字列1文字列2よりも長い場合,文字列2の最後の1バイトの文字が文字列1と同じ長さになるまで繰り返されているものと見なします。

形式2でコマンドが指定された場合,標準入力から入力された文字列に含まれる,文字列1の文字(1バイト単位)を削除して,その結果を標準出力に出力します。

形式3でコマンドが指定された場合,標準入力から入力された文字列を置換して,その結果を標準出力に出力します。置換の際,標準入力の文字列に,文字列1の文字(1バイト単位)が連続して含まれていた場合に,連続する同じ文字を1文字に圧縮します。

形式4でコマンドが指定された場合,標準入力から入力された文字列を削除および置換して,その結果を標準出力に出力します。削除の際,標準入力の文字列に含まれる,文字列1の文字(1バイト単位)を削除します。また,文字列1の文字を削除したあとの文字列に,文字列2の文字(1バイト単位)が連続して含まれていた場合に,連続する同じ文字を1文字に圧縮します。

引数

-c

--complement

文字列1文字列1の補集合(文字列1に含まれない文字すべて)で置換します。

-d

--delete

標準入力の文字列から,文字列1にある入力文字を削除します。

-s

--squeeze-repeats

すべての削除や置換が行われたあとの文字列に含まれる,連続する同じ文字(バイト単位)を1文字に圧縮します。置換する文字列は,形式1と形式4では文字列2,形式3では文字列1に指定した文字列(1バイト単位)です。

-t

--truncate-set1

文字列1文字列2よりも長い場合に,文字列1の文字を削除して,文字列2と同じ長さに切り詰めてから置換します。

--check-multi-byte

文字列1または文字列2にマルチバイト文字が含まれている場合,エラーにします。

文字列1文字列2

標準入力から入力された文字列に対して,置換または削除する対象の文字列を指定します。文字列は,1バイト単位で処理されます。

文字列1文字列2の文字の集合を指定する場合,次の記述が利用できます。

記述形式

意味

\ooo

1~3桁の8進数で表されたASCIIコードの文字を指定します。

文字1-文字2

範囲指定。文字(1バイト)はASCII照合順序で指定します。

エスケープ文字

\a

アラート文字(ベル)

\b

バックスペース文字

\f

フォームフィード文字(改ページ)

\n

改行文字

\r

復帰文字

\t

タブ文字

\v

垂直タブ文字

[:文字クラス:]

文字列1および形式4の文字列2は以下の文字クラスを指定できます。形式1の文字列2は,次の条件をすべて満たしたときに,lowerまたはupperが指定できます。

-cオプションなし

文字列1の,文字列2と同じ位置にlowerまたはupperを指定します。

alnum

英数字

alpha

英字

blank

空白文字(空白とタブ)

cntrl

制御文字

digit

数字

graph

表示可能文字(スペースは含まない)

lower

英小文字

print

表示可能文字(スペースを含む)

punct

句読点文字

space

空白文字

upper

英大文字

xdigit

16進数での数字

[#*n]

#で指定した文字(1バイト)をn個指定したと同じ意味です。形式1の文字列2で使用します。nを省略した場合または0の場合,文字列2文字列1と同じ長さの値として解釈され,後ろに指定した文字は無視されます。nが0で始まる場合,8進数として解釈され,その他は10進数と解釈されます。

終了コード

終了コード

意味

0

正常終了。

1以上

エラー終了。

注意事項

使用例

例1 文字列1文字列2の指定に従って,標準入力から入力された文字列を置換します。この例では,括弧の種類が異なる文字列を[]に統一しています。

file1の内容

[apple],{banana}
[orange],<peach>,{cherry}

コマンドの実行結果

$ tr  '{}<>' '[][]' < file1
[apple],[banana]
[orange],[peach],[cherry]
例2 文字列1の補集合を文字列2で置換し,連続している文字を1文字に圧縮します。この例では,標準入力から入力された文字列から英文字を洗い出しています。

file1の内容

[apple],{banana}
[orange],<peach>,{cherry}

コマンドの実行結果

$ tr -s -c '[:alpha:]' '[\n*]' < file1

apple
banana
orange
peach
cherry
例3 文字列1の指定に従って,標準入力から入力された文字列を削除します。この例では,括弧を削除しています。

file1の内容

[apple],{banana}
[orange],<peach>,{cherry}

コマンドの実行結果

$ tr -d '{}<>[]' < file1
apple,banana
orange,peach,cherry
例4 文字列1文字列2の指定に従って,標準入力から入力された文字列を置換し,連続する文字を圧縮します。この例では,括弧を”,”に置き換え,”,”を1文字に圧縮しています。

file1の内容

[apple],{banana}
[orange],<peach>,{cherry}

コマンドの実行結果

$ tr -s '{}<>[]' ','< file1
,apple,banana,
,orange,peach,cherry,
例5 文字列1に従って,標準入力から入力された文字列を削除し,文字列2に従って連続する文字を圧縮します。この例では,括弧を削除し,”,”を圧縮しています。

file1の内容

[apple],{banana}
[orange],<>,{cherry}

コマンドの実行結果

$ tr -ds '{}<>[]' ','< file1
apple,banana
orange,cherry
例6 文字列1文字列2の長さに切り詰め,置換します。この例では,括弧“{”と“}”を”[”と”]”に置換します。”<”と”>”は,置換しません。

file1の内容

[apple],{banana}
[orange],<peach>,{cherry}

コマンドの実行結果

$ tr -t '{}<>' '[]'< file1
[apple],[banana]
[orange],<peach>,[cherry]