tr コマンドは、標準入力から受け取った文字を 変換・削除 して標準出力に返すコマンドです。
実務では、アルファベットの大文字・小文字変換や、不要な文字の削除、改行の置換などに利用されます。
構文(Syntax)
tr [オプション] SET1 [SET2]
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
| (なし) | SET1 を SET2 に変換 | `echo “abc” |
-d | 指定した文字を削除 | echo "hello123" | tr -d 0-9 |
-s | 連続する同じ文字を1つに圧縮 | echo "aaabbb" | tr -s ab |
-c | SET1 の補集合を対象にする(NOT演算) | echo "abc123" | tr -cd 0-9 |
実行例
小文字を大文字に変換
echo "hello world" | tr a-z A-Z
出力例:
HELLO WORLD
大文字を小文字に変換
echo "HELLO" | tr A-Z a-z
出力例:
hello
数字を削除
echo "user123" | tr -d 0-9
出力例:
user
改行をスペースに変換
echo -e "a\nb\nc" | tr '\n' ' '
出力例:
a b c
連続するスペースを1つに圧縮
echo "a b c" | tr -s ' '
出力例:
a b c
数字以外を削除(補集合)
echo "abc123xyz" | tr -cd 0-9
出力例:
123
エラー例(SET2 を省略)
echo "abc" | tr abc
出力例:
tr: missing operand after 'abc'
Try 'tr --help' for more information.
関連コマンド
cut: 特定の列や文字を抽出sed: 文字列置換や削除を含む高度な編集awk: 抽出・加工に特化したテキスト処理言語iconv: 文字コード変換
備考
trは 標準入力から標準出力へ の変換専用。直接ファイル指定はできない(リダイレクトで対応)。- マルチバイト文字(日本語など)には非対応のことが多い。基本的に ASCII 文字に利用。
- 文字範囲は
a-z,A-Z,0-9などで指定可能。
参考
- manページ: man7.org tr(1)
- GNU Coreutils: https://www.gnu.org/software/coreutils/

コメント