Linuxコマンドtrの使い方と3つのオプション

Linuxコマンドtrは、文字の置換や削除を迅速かつ簡単に処理できるコマンドで、ファイル内容の修正やテキストのフィルタリング時によく使用されます。本記事では、trコマンドの基本的な使い方やオプション、日常生活で活用できる便利な方法を紹介します。

Linuxコマンドtrとは?

trコマンドは「translate(変換)」の略で、入力されたテキストから特定の文字を変換または削除するために使用されます。主に、文字列内の文字を別の文字に置き換える、スペースを別の文字に変換する、小文字を大文字に変換するなどの作業に役立ちます。

このコマンドは、Linux/Unix環境で標準的に提供されるユーティリティで、主にパイプ(|)と一緒に他のコマンドと組み合わせて使用されます。これにより、複雑なテキスト処理作業を簡素化することができます。

基本的な使い方

trコマンドは、主に次の2つの目的で使用されます。

  1. 文字の変換
  2. 文字の削除

コマンドの基本構文は次のとおりです。

tr [オプション] '元の文字セット' '置換後の文字セット'
ShellScript

例1: 小文字を大文字に変換する

小文字を大文字に変換するには、次のコマンドを使用します。

echo "hello world" | tr 'a-z' 'A-Z'
ShellScript

「hello world」という文字列が小文字から大文字に変換され、出力されます。

図1. Linuxコマンドtr: 小文字を大文字に変換
図1. Linuxコマンドtr: 小文字を大文字に変換

例2: スペースをアンダースコア(_)に変換する

スペースをアンダースコアに変換したい場合、次の方法が使用できます。

echo "hello world" | tr ' ' '_'
ShellScript

このように、スペース文字がアンダースコアに変更されているのがわかります。

図2. Linuxコマンドtr: スペース文字をアンダースコアに変換
図2. Linuxコマンドtr: スペース文字をアンダースコアに変換

例3: 特定の文字を削除する

文字を削除するには、-dオプションを使用します。例えば、数字をすべて削除したい場合は、次のように使用できます。

echo "abc123def456" | tr -d '0-9'
ShellScript

結果として、与えられた文字列から数字が削除されたことが確認できます。

図3. Linuxコマンドtr: 文字列から数字を削除
図3. Linuxコマンドtr: 文字列から数字を削除

主要オプションの説明

trコマンドにはさまざまなオプションがありますが、頻繁に使用されるいくつかの主要なオプションを覚えておけば十分です。

-dオプション

-dオプションは「delete(削除)」の略で、特定の文字や文字セットを削除するために使用されます。前述の例では数字を削除しましたが、このように不要な文字を簡単に除去できます。

tr -d '0-9' < file.txt
ShellScript

上記のコマンドは、file.txtファイルからすべての数字を削除した結果を出力します。

図4. Linuxコマンドtr: -dオプションで特定の文字や文字セットを削除
図4. Linuxコマンドtr: -dオプションで特定の文字や文字セットを削除

-sオプション

-sオプションは「squeeze(圧縮)」の略です。このオプションは、連続する重複した文字を1つに圧縮します。特に、複数回繰り返されるスペースを1つのスペースに縮小するのに役立ちます。

echo "hello    world" | tr -s ' '
ShellScript

結果として、連続したスペース文字が1つに置き換えられたことが確認できます。

図5. Linuxコマンドtr: -sオプションで連続した重複文字を圧縮
図5. Linuxコマンドtr: -sオプションで連続した重複文字を圧縮

-cオプション

-cオプションは「complement(補完)」の略で、文字セットを反転指定します。例えば、アルファベット以外のすべての文字を削除したい場合、-dc 'a-zA-Z'のように使用できます。

echo "hello123" | tr -cd 'a-zA-Z'
ShellScript

下図は、このコマンドと逆に、数字以外のすべての文字を削除した場合です。

図6. Linuxコマンドtr: -cオプションでそれ以外の文字を指定
図6. Linuxコマンドtr: -cオプションでそれ以外の文字を指定

注意事項

  1. 文字セットサイズの不一致: trコマンドを使用する際、元の文字セットと置換後の文字セットのサイズが異なるとエラーが発生することがあります。例えば、「abc」を「AB」に置換しようとすると、コマンドは意図通りに動作しません。必ず2つの文字セットのサイズが一致している必要があります。
  2. パイプラインの使用: trコマンドは単独で使用するよりも、他のコマンドと組み合わせてパイプラインとして使用することが多いです。コマンドを使用する際は、ファイルを直接変更するのではなく、パイプラインを介して結果を確認し、必要に応じて>演算子を使用してファイルに保存するのが安全です。
  3. マルチバイト文字: trコマンドは基本的にASCII文字セットを処理するため、韓国語や日本語などのマルチバイト文字を扱うのには適していない場合があります。マルチバイト文字を扱う際には、sedawkなどのツールを使用する方が適しています。

まとめ

Linuxコマンドtrは、Linuxで簡単な文字変換作業を行う際に非常に便利なツールです。特に、大文字と小文字の変換、特定の文字の削除、重複した文字の圧縮など、さまざまな作業で活用できます。基本的な使い方といくつかのオプションを理解すれば、テキストデータの処理に大いに役立つでしょう。ただし、マルチバイト文字を扱う際には注意が必要であり、パイプラインを通じて安全に作業を進めるのが良いでしょう。

今後、trコマンドを活用して、より効率的にテキストデータを管理してみてください!

リファレンス

関連ポスト

コメントする