No.042テキスト処理
tr
ティーアール・文字変換・削除
文字単位の変換、削除、連続圧縮を行います。改行や空白の整形、大文字小文字変換、不要文字除去に向いています。
答えよく使う形
$ printf 'abcn' | tr 'a-z' 'A-Z'
ABC
$ printf 'abc' | tr 'a-z' 'A-Z'
$ tr -d 'r' < file.txt
練習用の部屋です。何を打っても本物は変わりません。本物の Linux で続ける →
覚える順番の中でLPIC-1・27 駅め / 106
どんなコマンド?
小文字と大文字を変換したい時、不要文字を落としたい時、連続空白を一つにまとめたい時に使います。
trは、標準入力に流れてくる文字列を一文字単位で変換するコマンドです。文字種の変換、特定文字の削除、連続文字の圧縮といった軽量な整形に向いています。
たとえば英字を大文字へ変える、余分な空白を一つへそろえる、制御文字を落とすといった前処理が簡単に書けます。ログや一覧出力の雑な整形に強い一方、行全体を理解した条件分岐や複雑な置換には向きません。
trはファイル引数を取らず、標準入力から受け取る点も重要です。catやprintf、パイプと組み合わせて使う道具だと理解すると混乱しません。
書き方とオプション
組み立ててみるオプションを押すと、下の1行に足されます。もう一度押すと外れます。
$ tr
使用例と実行結果
行を押すとコピーできます。
ABC
まず安全に試す
3分ミッション
手を動かすと覚えやすくなります。できたものに印を付けてください(この端末に残ります)。
0 / 2
つまずいたとき
ファイル名を直接渡しても動かない
原因trは通常、標準入力から文字列を受け取ります。
こうするcat file | tr ... や tr ... < file.txtの形で使います。
終わったときの数(戻り値)
$ echo $?
- 0正常終了。変換や削除に成功しました。
- >0文字集合指定の不正などで失敗しました。
気をつけることと入れ方
危険度は低いですが、多バイト文字や文字集合の解釈はロケールに影響されることがあります。日本語混在テキストでは結果をよく確認してください。
環境による違い
GNU実装では補助的な表現がありますが、記事では文字変換、削除、圧縮の三役を中心に説明するのが安全です。
確かめた環境2026-04-09 に確認
よくある質問
sedやawkとの違いは何ですか。
trは文字単位の軽量処理に強く、行条件や複雑な置換はsedやawkが向いています。
資格試験では
- LinuC レベル1大事1.03.2 フィルタを使ったテキストストリームの処理
- LPIC-1大事103.2 フィルタを使ったテキストストリームの処理
- 共通基礎大事Linuxコマンド基礎
tr を最後まで読みました。
Linux コマンド辞典に戻る123 / 144