trコマンドは標準入力から受け取った文字を変換・削除・圧縮して標準出力に送るコマンドです。パイプやリダイレクトと組み合わせて使います。
・trコマンドで標準入力のテキストの文字変換・削除・圧縮ができる
・tr '[A-Z]' '[a-z]'で大文字を小文字に、tr '[a-z]' '[A-Z]'で小文字を大文字に変換できる
・tr -dで特定の文字を削除、tr -sで連続する同じ文字を1つに圧縮できる
・ファイルへの保存はリダイレクト(>)で別ファイルに出力する(元ファイルへの直接上書き不可)
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
基本的な使い方
trコマンドの書式
tr [オプション] 変換前の文字セット 変換後の文字セット
・trは標準入力からデータを受け取るため、
<(リダイレクト)や |(パイプ)と組み合わせる大文字・小文字変換
1. 大文字を小文字に変換する
# テスト用ファイルを作成する [pakira@Tiger ~]$ echo "ABCDEFGHIJKLMNOPQRSTUVWXYZ" > test_file1.txt [pakira@Tiger ~]$ cat test_file1.txt ABCDEFGHIJKLMNOPQRSTUVWXYZ # 大文字を小文字に変換して表示する [pakira@Tiger ~]$ tr '[A-Z]' '[a-z]' < test_file1.txt abcdefghijklmnopqrstuvwxyz # 変換結果を別ファイルに保存する [pakira@Tiger ~]$ tr '[A-Z]' '[a-z]' < test_file1.txt > test_file2.txt [pakira@Tiger ~]$ cat test_file2.txt abcdefghijklmnopqrstuvwxyz
2. 小文字を大文字に変換する
[pakira@Tiger ~]$ cat test_file2.txt abcdefghijklmnopqrstuvwxyz [pakira@Tiger ~]$ tr '[a-z]' '[A-Z]' < test_file2.txt ABCDEFGHIJKLMNOPQRSTUVWXYZ # 結果を新しいファイルに保存する [pakira@Tiger ~]$ tr '[a-z]' '[A-Z]' < test_file2.txt > test_file3.txt [pakira@Tiger ~]$ cat test_file3.txt ABCDEFGHIJKLMNOPQRSTUVWXYZ
応用・よく使うtrコマンドのパターン
1. 特定の文字を削除する(-dオプション)
# ファイルから改行文字( )を削除して1行にまとめる $ cat multiline.txt | tr -d ' ' # 数字をすべて削除する $ echo "abc123def456" | tr -d '0-9' abcdef
2. 連続する同じ文字を1つに圧縮する(-sオプション)
# 連続するスペースを1つにまとめる $ echo "hello world" | tr -s ' ' hello world # 連続する改行を1つにまとめる $ cat file.txt | tr -s ' '
3. パイプと組み合わせる
# コマンドの出力を小文字に変換する $ echo "Hello World" | tr '[A-Z]' '[a-z]' hello world # /etc/hostsの内容を大文字に変換して確認する(確認用) $ cat /etc/hosts | tr '[a-z]' '[A-Z]'
注意事項
元ファイルへの直接上書きはできない
tr '変換前' '変換後' < file.txt > file.txt のように、入力と出力を同じファイルに指定することはできません。この書き方をすると、ファイルが空になってしまいます。必ず別のファイル名に出力してから、必要であればリネームしてください。
# NG: 元ファイルが空になる(絶対にやらない) # tr '[A-Z]' '[a-z]' < file.txt > file.txt # OK: 別ファイルに出力してからリネームする $ tr '[A-Z]' '[a-z]' < file.txt > file_new.txt $ mv file_new.txt file.txt
本記事のまとめ
・tr '[A-Z]' '[a-z]' < ファイル:大文字を小文字に変換・
tr '[a-z]' '[A-Z]' < ファイル:小文字を大文字に変換・
tr -d '削除文字' < ファイル:特定の文字を削除・
tr -s '対象文字' < ファイル:連続する同じ文字を1つに圧縮・変換結果は別ファイルに出力する(同じファイルへの入出力は不可)
Linuxのテキスト処理を体系的に学びたい方へ
trコマンドをはじめとするテキスト処理コマンド(sed・awk・grepなど)を組み合わせると、ログ解析や設定ファイルの一括変換を効率よく行えるようになります。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
