【 tr 】コマンド――テキストファイルの文字を置換する/削除するLinux基本コマンドTips(52)

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「tr」コマンドです。

» 2016年10月03日 05時00分 公開
[西村めぐみ@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、テキストファイルの文字を置換するための「tr」コマンドです。

trコマンドとは?

 「tr」は、文字を置き換えるためのコマンドです。指定した文字を削除したり、文字が連続している場合には1つにまとめたりすることもできます。

 標準入力と標準出力が使われるので、ファイルを処理したい場合は「cat」コマンドなどを使用するか、リダイレクトします。


trコマンドの書式

tr [オプション] 文字セット1 [文字セット2]

※[ ]は省略可能な引数を示しています




trコマンドの主なオプション

 trコマンドの主なオプションは次の通りです。

短いオプション 長いオプション 意味
-d --delete [文字セット1]に含まれる文字があったら削除する
-s --squeeze-repeats [文字セット1]に含まれる文字が連続していたら1つにまとめる
-t --truncate-set1 [文字セット1]を[文字セット2]の長さに切り詰めてから処理を行う
-c --complement [文字セット1]に含まれない文字全て(の補集合)を対象とする


大文字/小文字を変換する

 「tr 012 abc」を実行すると「0」を「a」に、「1」を「b」に、「2」を「c」に置き換えます。「012」という連続した文字列を「abc」に置き換えるのではなく、常に1文字対1文字での置き換えとなるので、両者の長さはそろえる必要があります。

 また、文字を範囲で指定することも可能です。「tr A-Z a-z」で「A」は「a」に、「B」は「b」に……と対応する文字に置き換えられます。

コマンド実行例

cat ファイル1 | tr A-Z a-z > ファイル2

tr A-Z a-z <ファイル1 >ファイル2

(「ファイル1」の大文字を全て小文字に変換して「ファイル2」に保存する)(画面1


画面1 画面1 「tr --version」の実行結果を全て大文字にしている


改行コードを変換する

 「-d」オプションで、指定した文字を削除することができます。例えば、Windows環境で作成したテキストファイルの改行コードを、Linux環境向けに置き換えるといった用途に使用できます。

 Windows環境では、改行を「CR」(16進数0D)と「LF」(16進数0A)の2バイトで表しますが、Linux環境では「LF」のみです。trコマンドでは「CR」を「\r」で表すことができるので、「tr -d \r」としてテキストファイルから「CR」を除去することで、Linux環境用の改行コードに変換できます。


※trコマンドには文字を追加する機能はないので、「LF」を「CRLF」に置き換えたい場合には「sed」コマンドなどを使用します。なお、Windows環境の「メモ帳」(テキストエディタ)を含め多くのエディタソフトウェアは、改行コードが違っていても処理することができます。



コマンド実行例

tr -d "\r" <ファイル1 >ファイル2

(「ファイル1」から「CR」を削除して「ファイル2」に保存する)(画面2


画面2 画面2 fileコマンドで「note1.txt」を確認すると、CRLFで改行していることが分かる。そこで、CR(\r)を除去して、「note2.txt」に保存した


連続した改行を1つにする

 「-s」オプションでは、指定した文字が連続している場合には1つにまとめることができます。例えば、「tr -s "\r"」では、連続した改行を1つにします。catコマンドの「-s」オプションと同じ働きになります。


コマンド実行例

tr -s "\r" <ファイル1 >ファイル2

(「ファイル1」の連続した改行を1つにして「ファイル2」に保存する)

cat ファイル1 | tr -s "\r"

(ファイル1の連続した改行を1つにして表示する)(画面3


画面3 画面3 「note2.txt」は改行が複数入っているので、改行を1つにまとめた


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。