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

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

tr コマンドとは?

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

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

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

コマンド構文

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)には対応していません。

    目次