tr コマンドは、文字の変換や削除を行うためのコマンドです。標準入力から文字列を受け取り、指定した変換ルールに従って出力します。GNU coreutils に含まれており、Linux では GNU 版が、FreeBSD では BSD 版が提供されています。基本的な動作は共通していますが、細かなオプションの違いがあります。

基本的な使い方

編集
tr [オプション] SET1 [SET2]

主なオプション(GNU coreutils版)

編集
主なオプション
オプション 説明
-c, --complement 指定した文字セット以外の文字を変換
-d, --delete 文字を削除
-s, --squeeze-repeats 連続する同じ文字を1文字に圧縮
-T, --translate 特殊文字の変換を有効にする

小文字を大文字に変換

編集
echo "hello" | tr 'a-z' 'A-Z'

文字列 "hello" を小文字から大文字に変換して表示。

複数の空白を1つの空白に圧縮

編集
echo "this  is   a   test" | tr -s ' '

複数の空白を1つの空白に圧縮して表示。

特定の文字を削除

編集
echo "hello 123" | tr -d '0-9'

数字を削除し、"hello " を表示。

文字セットを補完して変換

編集
echo "hello" | tr -c 'a-z' 'A-Z'

アルファベット以外の文字を大文字に変換。

FreeBSD 版との違い

編集

FreeBSD でも tr コマンドは提供されていますが、GNU coreutils 版といくつか違いがあります。

主な違い:

編集
  1. -T(特殊文字の変換を有効にする)オプションがない
    • FreeBSD の tr には -T オプションがなく、特殊文字の変換機能を利用することはできません。
  2. GNU coreutils 版を FreeBSD で使う方法
    • coreutils パッケージをインストールすると gtr という名前で GNU 版の tr が使える。
    pkg install coreutils
    gtr 'a-z' 'A-Z'  # GNU版の tr を使用
    

詳しくは、それぞれの環境で man tr を確認してください。