概要
文字単位の変換、削除、連続圧縮を行います。改行や空白の整形、大文字小文字変換、不要文字除去に向いています。
基本構文
tr [オプション]... 文字集合1 [文字集合2]詳細解説
trは、標準入力に流れてくる文字列を一文字単位で変換するコマンドです。文字種の変換、特定文字の削除、連続文字の圧縮といった軽量な整形に向いています。
たとえば英字を大文字へ変える、余分な空白を一つへそろえる、制御文字を落とすといった前処理が簡単に書けます。ログや一覧出力の雑な整形に強い一方、行全体を理解した条件分岐や複雑な置換には向きません。
trはファイル引数を取らず、標準入力から受け取る点も重要です。catやprintf、パイプと組み合わせて使う道具だと理解すると混乱しません。
このコマンドを使う場面
小文字と大文字を変換したい時、不要文字を落としたい時、連続空白を一つにまとめたい時に使います。
まず安全に試す方法
1. printf 'abcn' | tr 'a-z' 'A-Z'
2. printf 'a bn' | tr -s ' '
3. printf 'arbrn' | tr -d 'r'
3分ミッション
少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。
-
printfの結果をtrで大文字へ変換します。
-
複数空白をtr -sで一つにそろえます。
資格試験との関連
-
LinuC レベル1
範囲: 1.03.2 フィルタを使ったテキストストリームの処理根拠: officialtrは、テキスト処理系の基本フィルタとしてLinuCレベル1の範囲に関わります。
-
LPIC-1
範囲: 103.2 フィルタを使ったテキストストリームの処理根拠: officialtrは、LPIC-1でテキストストリームへフィルタを適用する技能と関係します。
-
共通基礎
範囲: Linuxコマンド基礎根拠: editorialtrは、ファイル操作またはテキスト処理の基本を支えるため、試験横断の共通知識として価値があります。
実行結果サンプル
-
printf 'abcn' | tr 'a-z' 'A-Z'ABC
戻り値コード
- 0 正常終了。変換や削除に成功しました。
- >0 文字集合指定の不正などで失敗しました。
使用例
printf 'abc' | tr 'a-z' 'A-Z'tr -d 'r' < file.txttr -s ' ' < file.txt
よくあるエラー
-
ファイル名を直接渡しても動かない 原因: trは通常、標準入力から文字列を受け取ります。対処: cat file | tr ... や tr ... < file.txtの形で使います。
導入・互換性情報
POSIXで基本機能は共通です。GNU実装では補助的な表現がありますが、記事では文字変換、削除、圧縮の三役を中心に説明するのが安全です。
注意点 / セキュリティリスク
危険度は低いですが、多バイト文字や文字集合の解釈はロケールに影響されることがあります。日本語混在テキストでは結果をよく確認してください。
FAQ
-
Q. sedやawkとの違いは何ですか。 A. trは文字単位の軽量処理に強く、行条件や複雑な置換はsedやawkが向いています。
参照リンク
- カテゴリー: Text Processing
- レベル: Basic
- 対応試験: LinuC, LinuC レベル1, LPIC, LPIC-1, 共通基礎