tr ティーアール

英語表記tr

日本語表記文字変換・削除

正式名称tr

危険度安全

What does it mean?

文字単位の変換、削除、連続圧縮を行います。改行や空白の整形、大文字小文字変換、不要文字除去に向いています。

Command Quest

tr を今日の道具にする

文字単位の変換、削除、連続圧縮を行います。改行や空白の整形、...

$ tr [オプション]... 文字集合1 [文字集合2]
関連用語0
次のコマンド0
FAQ1
参照3

概要

文字単位の変換、削除、連続圧縮を行います。改行や空白の整形、大文字小文字変換、不要文字除去に向いています。

基本構文

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分ミッション

少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。

  1. printfの結果をtrで大文字へ変換します。

  2. 複数空白をtr -sで一つにそろえます。

資格試験との関連

  • LinuC レベル1
    範囲: 1.03.2 フィルタを使ったテキストストリームの処理
    根拠: official
    trは、テキスト処理系の基本フィルタとしてLinuCレベル1の範囲に関わります。
  • LPIC-1
    範囲: 103.2 フィルタを使ったテキストストリームの処理
    根拠: official
    trは、LPIC-1でテキストストリームへフィルタを適用する技能と関係します。
  • 共通基礎
    範囲: Linuxコマンド基礎
    根拠: editorial
    trは、ファイル操作またはテキスト処理の基本を支えるため、試験横断の共通知識として価値があります。

オプション

  • -d
    指定した文字集合を削除します。
    tr -d 'r'
  • -s
    連続する同一文字を一つに圧縮します。
    tr -s ' '
  • -c
    文字集合を補集合として解釈します。
    tr -cd '0-9n'

実行結果サンプル

  • printf 'abcn' | tr 'a-z' 'A-Z'
    ABC

戻り値コード

  • 0 正常終了。変換や削除に成功しました。
  • >0 文字集合指定の不正などで失敗しました。

使用例

  • printf 'abc' | tr 'a-z' 'A-Z'
  • tr -d 'r' < file.txt
  • tr -s ' ' < file.txt

よくあるエラー

  • ファイル名を直接渡しても動かない
    原因: trは通常、標準入力から文字列を受け取ります。
    対処: cat file | tr ... や tr ... < file.txtの形で使います。

導入・互換性情報

POSIXで基本機能は共通です。GNU実装では補助的な表現がありますが、記事では文字変換、削除、圧縮の三役を中心に説明するのが安全です。

注意点 / セキュリティリスク

危険度は低いですが、多バイト文字や文字集合の解釈はロケールに影響されることがあります。日本語混在テキストでは結果をよく確認してください。

FAQ

  • Q. sedやawkとの違いは何ですか。
    A. trは文字単位の軽量処理に強く、行条件や複雑な置換はsedやawkが向いています。

参照リンク

関連記事