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コマンドでは、文字セットしてあらかじめ決められた値を使用することができます。バックスラッシュ(\)は次への行への継続と解釈されるのでバックスラッシュからはじまる部分はエスケープキャラクタとして、バックスラッシュを付けるか、シングルコーテーション(’)で囲みます。
要素 | 表記例 | 説明 |
---|---|---|
\NNN | NNNとして指定した1~3桁の8進数の文字 | |
\\ | バックスラッシュ | |
\a | ベル(ビープ音) | |
\b | バックスペース | |
\f | フォームフィード(改行) | |
\n | リターン | |
\r | リターン | |
\t | 水平タブ | |
\v | 垂直タブ | |
\000 | 1~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]$