Linuxコマンド辞典 trコマンド(テキスト処理)

特定の文字を別の文字列に置換したり削除したり、連続する文字を圧縮する「tr」コマンドの概要と使い方を記載しています。

RHEL Fedora CentOS Vine Deblan Ubuntu Plamo

参考サイト:Man page of INSTALL

概要・使用方法

標準入力から読み込まれた文字列を変換したり削除したり標準出力に出力します。また、連続する文字列の圧縮を行うこともできます。また、バックスラッシュも用いたエスケープシーケンスの変換や削除も可能なため、改行コードの削除などに利用できます。セット1とセット2は以下の文字列で表現できます。

書式

$ tr [オプション] 

オプション

-C セット1 セット2
–complement
セット1で指定した文字以外をセット2で置き換える
-d セット1
–delete
セット1で指定した文字を削除する
-s セット1
–squeeze-repeats
セット1の文字の繰り返しを1文字に圧縮する
-t
–truncate-set1
変換前にセット1をセット2の長さに縮める

セット(SET)として指定できる値

trコマンドでは、文字セットしてあらかじめ決められた値を使用することができます。バックスラッシュ(\)は次への行への継続と解釈されるのでバックスラッシュからはじまる部分はエスケープキャラクタとして、バックスラッシュを付けるか、シングルコーテーション(’)で囲みます。

要素表記例説明
\NNNNNNとして指定した1~3桁の8進数の文字
\\バックスラッシュ
\aベル(ビープ音)
\bバックスペース
\fフォームフィード(改行)
\nリターン
\rリターン
\t水平タブ
\v垂直タブ
\0001~3桁の8進数で表示される文字
範囲‘m-n’‘0-3’であれば0,1,2,3、’x-z’であればx、y、zになる
繰り返し‘[n*m]’文字のnのm個の繰り返しになる
‘[n*]’SET2 として, CHAR を SET1 の長さ分展開した文字列
文字‘[:class:]’classで指定した文字に展開される。classは次のものから使う
[:alnum:]アルファベットと数字
[:alpha:]文字
[:blank:]スペース(1行以内の水平方向)
[:cntrl:]制御文字
[:digit:]数字
[:graph:]印刷可能文字(スペースを除く)
[:lower:]小文字
[:print:]印刷可能文字(スペースを含む)
[:space:]スペース(水平方向、垂直方向のすべて)
[:upper:]アルファベット大文字
[:xdigit:]16進数の文字

特定の文字列を置換する

$ echo "password" | tr 'ao' '@0'

実行結果

[sunarin@localhost work]$ echo "password" | tr 'ao' '@0'
p@ssw0rd

ファイル内の小文字を大文字に変換する

$ cat ファイル名 |tr a-z A-Z

実行結果

[sunarin@localhost work]$ cat abc.txt 
B
b
a
b
c
[sunarin@localhost work]$ cat abc.txt |tr a-z A-Z
B
B
A
B
C
H
C
[sunarin@localhost work]$ 

ファイルの中から特定の文字列を削除する

$ tr -d "削除する文字列" < ファイル名

実行結果

[sunarin@localhost work]$ tr -d ":" < /etc/passwd | head -n5
rootx00root/root/bin/bash
binx11bin/bin/sbin/nologin
daemonx22daemon/sbin/sbin/nologin
admx34adm/var/adm/sbin/nologin
lpx47lp/var/spool/lpd/sbin/nologin
[sunarin@localhost work]$ 

連続している文字列を圧縮する

$ tr -s "圧縮する文字列" < ファイル名

実行結果

空白文字を圧縮する

[sunarin@localhost work]$ cat  Animal_garden_unix_spc.txt
ライオン
    インドライオン Indian lion
    バーバリーライオン Barbary lion
    セネガルライオン P.l. senegalensis
    コンゴライオン Northeast Congo Lion
サイ
    キタシロサイ Northern white rhinoceros
    ミナミシロサイ Southern white rhinoceros
[sunarin@localhost work]$ tr -s " " < Animal_garden_unix_spc.txt 
ライオン
 インドライオン Indian lion
 バーバリーライオン Barbary lion
 セネガルライオン P.l. senegalensis
 コンゴライオン Northeast Congo Lion
サイ
 キタシロサイ Northern white rhinoceros
 ミナミシロサイ Southern white rhinoceros
[sunarin@localhost work]$