はじめに
tr
command は、標準入力 (stdin
) から文字を変換または削除する Linux コマンドライン ユーティリティです。 )、結果を標準出力に書き込みます(stdout
)。 tr
を使用 大文字と小文字の変換、文字の圧縮または削除、基本的なテキストの置換など、さまざまなテキスト変換を実行します。
tr
以降 ファイルを直接読み取ることができず、結果を標準出力に出力するため、パイプ (|
で使用されることが多い) ) とリダイレクト (>>
) より複雑なファイル コンテンツ処理を可能にします。
このチュートリアルでは、Linux tr
の使い方を学びます。 コマンド。

前提条件
- Linux を実行するシステム。
- 端末へのアクセス (Ctrl + Alt + T ).
Linux tr コマンドの構文
基本的な tr
コマンド構文は次のとおりです:
tr [options] SET1 [SET2]
オプション
tr
を実行中 オプションを指定しないと、SET1
で指定された各文字が置き換えられます SET2
の文字で
例:

上記の例では、echo コマンドの出力が tr
にパイプされます。 コマンド、e の各インスタンスを置き換えます o で .
セット
SET
s は文字列です。このコマンドは、文字マッチングのために次の解釈されたシーケンスを受け入れます:
シーケンス | 解釈 |
---|---|
\NNN | NNN の文字 8 進値 (1 から 3 の 8 進数字)。 |
\\ | バックスラッシュ。 |
\a | 可聴ベル文字。 |
\b | バックスペース。 |
\f | フォーム フィード |
\n | 改行文字。 |
\r | キャラクターを返す。 |
\t | 水平タブ。 |
\v | 垂直タブ。 |
CHAR1-CHAR2 | CHAR1 のすべての文字 CHAR2 まで 昇順で。 |
[CHAR*] | コピー CHAR* SET2 で SET1 の長さまで . |
[CHAR*REPEAT] | CHAR のコピーを繰り返します . 0 から始まる場合は 8 進数を繰り返します。 |
[:alnum:] | すべての文字と数字 |
[:alpha:] | すべての文字 |
[:blank:] | 横の空白。 |
[:cntrl:] | すべての制御文字 |
[:digit:] | すべての数字 |
[:graph:] | スペースを除く、印刷可能な文字 |
[:lower:] | すべて小文字 |
[:print:] | スペースを含む印刷可能な文字 |
[:punct:] | すべての句読点 |
[:space:] | 水平または垂直の空白文字。 |
[:upper:] | すべて大文字 |
[:xdigit:] | 16 進数。 |
[=CHAR=] | CHAR に相当するすべての文字 . |
注: もう 1 つの優れた Unix テキスト ストリーム エディターは SED です。このツールを使用すると、テキスト エディターで開かなくても、テキスト ファイル内の行を検索、置換、追加、および削除できます。
Linux tr コマンド オプション
オプションは、追加のキャラクター変換アクションを提供します。利用可能なオプションは次のとおりです:
オプション | 説明 |
---|---|
-C | SET1 の文字を補完します 、指定されたものを除く出力内のすべての文字を含みます。 |
-c | SET1 の値を補完します .指定されたセットにない文字に操作が適用されます。 |
-d | SET1 から文字を削除します 入力。 |
-s | 最後のオペランドで指定された繰り返し文字を圧縮します (SET1 のいずれか) または SET2 )、その文字の 1 つのオカレンスに置き換えます。 |
-t | SET1 を切り捨てます SET2 の長さまで . |
-u | すべての出力がバッファリングされないようにします。 |
--help | 利用可能なすべてのオプションを含むヘルプ ファイルを表示します。 |
--version | プログラムのバージョン情報を表示します。 |
Linux tr の例
以下は tr
の使用例です 入力テキストを変換するさまざまなオプションを持つコマンド。
大文字小文字の変更
tr
で大文字と小文字を変更するには 3 つの方法があります :
<強い>1.変換したい正確な文字を指定
入力から変換する文字を指定します。このオプションは、大文字と小文字または文字全体を変更し、SET1
のものを置き換えます SET2
のもので .
例:

<強い>2.変換する文字範囲を指定
範囲を指定すると、tr
が許可されます 指定された範囲内の任意の文字の大文字と小文字を変更します。次の例は、大文字を小文字に変換する方法を示しています:

CTRL+C を押します 入力モードを終了します。
<強い>3.解釈されたシーケンスを指定
解釈されたシーケンスを指定して、文字を照合して変換します。たとえば、小文字のシーケンスは [:lower:]
です 、大文字のシーケンスは [:upper:]
です . 2 つのシーケンスを指定すると、tr
が指示されます 大文字と小文字を一致させて変換するには:

上記の例は、tr
がどのように機能するかを示しています 大文字を小文字に変換します。
繰り返し文字を削除
-s
オプションは、繰り返される文字をその文字の 1 つのインスタンスにまとめます。このオプションは、空白をタブまたは改行文字に変換し、入力テキストに複数の連続した空白文字が含まれている場合に特に便利です。
たとえば、次の入力には複数の空白文字が含まれています。スクイーズせずにタブに変換すると、次の結果が得られます:

出力で複数のタブと空白を避けるには、-s
を指定します。 オプション:

文字を削除
-d
を使用して特定の文字を削除します オプション。次の例では、tr
e の各インスタンスを削除します 文字:

必要に応じて、解釈されたシーケンスを使用して文字のグループを指定します。たとえば、[:digit:]
を指定してすべての数字を削除します。 シーケンス:

補体セット
-c
を使用 SET1
の文字を補完するオプション .次の例では、数字以外のすべての文字を削除します:

指定されたセットにないすべての文字 (この場合、数字を除くすべて) が削除されます。
改行文字を削除
改行文字をスペースに変換して、テキストが占めるスペースを縮小します。コンテンツは 1 行で表示されます。
次の例では、cat コマンドを使用してテキスト ファイルを開き、それを tr
にパイプします。 改行文字を削除するには:

tr にリダイレクト
パイピングに代わる方法は、リダイレクトを使用してコンテンツを tr
にフィードすることです .さらに、リダイレクトを使用して tr
を保存できます ファイルに出力します。
次の例は、内容が tr
にリダイレクトされるファイルからすべての印刷不可能な文字を削除する方法を示しています。 :

トランケート セット
デフォルトでは、SET1
の場合 SET2
より長い 、tr
SET2
の最後の文字を再利用します 入力を処理するとき。例:

SET1
以降 SET2
より長い 、tr
SET2
の最後の文字を再利用します 、この場合は 2 .
-t
を使用 SET1
を切り捨てるオプション SET2
の長さまで :

-t
オプションは tr
を指示します SET1
を切り捨てる SET2
の長さまで 最初の 2 文字のみを置き換えます。
分音記号を削除
[=CHAR=]
を使用します 指定された文字に相当するすべての文字に一致するシーケンス。たとえば、このシーケンスは分音記号を識別して文字から削除できます。

各単語を個別に印刷
-c
を使用して、ファイルの内容を 1 行ずつ出力します オプションを選択し、英数字以外の文字を改行文字に置き換えます。

注: Bash を使用したい場合は、ファイルを 1 行ずつ読み取る方法を参照してください。
出力は一度に 1 語ずつ表示されるようになりました。
出力をファイルに保存
tr
以降 ファイルの内容を直接変更することはなく、加えた変更も保存しません。次の例に示すように、出力をリダイレクトしてファイルに保存します。

cat
で新しいファイルを開く 変更が保存されたことを示します。
結論
このチュートリアルでは、tr
の使用方法を示しました。 コマンドと、さまざまなテキスト変換に使用できるオプション。ガイドで、sort コマンドと以下のターミナル ページャーについて、他の Linux テキスト ユーティリティを確認するか、最高の Linux テキスト エディターを参照してください。