【コマンド詳細】trコマンドの使い方とオプションまとめ

  • URLをコピーしました!
目次

tr コマンドとは?

tr コマンドは、「translate(変換)」の略で、文字列の変換や削除を行うためのツールです。
標準入力(stdin)からデータを受け取り、指定した操作を行った結果を標準出力(stdout)に送ります。
以下のような用途で使われます。

  • 文字や文字列の置換
  • 特定の文字の削除
  • 重複する文字の圧縮
  • 大文字と小文字の変換

シンプルですが強力なツールで、スクリプトやデータ加工で頻繁に使用されます。

📌 他のLinuxコマンドもまとめて確認したい方へ
ファイル操作・検索・テキスト処理など用途別に整理した総合まとめはこちら。
Linuxコマンド大全

コマンド構文

tr [オプション] セット1 [セット2]
  • セット1: 変換元の文字や文字列を指定します。
  • セット2: 変換先の文字や文字列を指定します(省略した場合は削除操作など)。

主なオプション一覧

オプション説明
-c指定した文字セットの補集合を使用
-d指定した文字セットを削除
-s指定した文字を圧縮して1文字にまとめる
-tセット2がセット1より短い場合に、セット2を繰り返して使用(非推奨)

使用例と出力結果

1. 文字の変換

大文字を小文字に変換
echo "HELLO WORLD" | tr 'A-Z' 'a-z'
出力:
hello world
解説

A-Z は大文字の範囲、a-z は小文字の範囲を指定しています。入力内の文字が1対1で対応して変換されます。

2. 特定の文字の削除

スペースを削除
echo "a b c d e" | tr -d ' '
出力:
abcde
解説

-d オプションを指定することで、セット1に含まれる文字(ここではスペース)を削除します。

3. 文字の圧縮

連続するスペースを1つに圧縮
echo "a    b    c    d" | tr -s ' '
出力:
a b c d

解説:
-s オプションを指定することで、連続するスペースを1つにまとめます。データ整形に役立つ操作です。

4. 特定文字の補集合を使用

アルファベット以外の文字を削除
echo "hello1234!@#world" | tr -cd 'a-zA-Z'
出力:
helloworld
解説

-c オプションは補集合を使用します。ここではアルファベット以外の文字が削除されました。

応用例

1. ファイル内の大文字を小文字に変換

cat sample.txt | tr 'A-Z' 'a-z'
解説

trはファイルの直接処理には対応していないため、catなどと組み合わせて使用します。

2. 区切り文字を変換

CSVファイルの区切り文字をタブに変更:
cat data.csv | tr ',' '\t'

3. パスワード生成(ランダム文字列生成)

cat /dev/urandom | tr -cd 'a-zA-Z0-9' | head -c 12
解説

/dev/urandomで生成された乱数から英数字以外を削除し、12文字分を抽出します。

注意点

trコマンドは、標準入力と標準出力のみを扱うため、元のファイルを直接操作することはできません。
ファイルを変更したい場合は、リダイレクトを使って結果を保存します。

cat input.txt | tr 'A-Z' 'a-z' > output.txt

セット1セット2で指定する範囲は、エスケープシーケンス(例: \n)には対応していません。

LPIC Lv1準拠!Linuxコマンド演習(基礎編)Vol.1【全10問】

厳選された100問のコマンド問題から、毎回ランダムで10問を出題。
挑戦するたびに新しい問題に出会えるので、真の実力が試されます。

1 / 10

viエディタで、直前の操作を取り消す(Undo)コマンドは?

2 / 10

環境変数やシェル変数を一覧表示するコマンドは?

3 / 10

新規ファイル作成時のデフォルトのアクセス権を制限(マスク)する値を設定するコマンドは?

4 / 10

テキストファイルをアルファベット順や数値順に並べ替えるコマンドは?

5 / 10

テキストファイルの各行から特定の「列」や「文字範囲」を切り出すコマンドは?

6 / 10

ユーザーのパスワードを変更するコマンドは?

7 / 10

ファイルの「最終アクセス日時」のみを更新するtouchのオプションは?

8 / 10

特定のサービスのポート(例:80番)が待ち受け状態か確認するコマンドは?

9 / 10

ディスクの空き容量を人間が見やすい単位(GB, MBなど)で表示するdfのオプションは?

10 / 10

事前に作成されたデータベースを検索して、ファイル名を高速に見つけるコマンドは?

あなたのスコアは

平均スコアは 63%

0%

目次