Last Update 2014/03/11
文字を置換します。
tr オプション1 文字列1 文字列2
オプション1(任意)
-c
文字列1の補集合
-d
文字列1にある文字を削除する
-d
文字列1の文字の繰り返しを1文字にして置換
文字列1(必須)
置換される文字の順序付きセット
文字列2(任意)
置換する文字の順序付きセット
文字クラス
[:alnum:] 英数字
[:alpha:] 英文字
[:blank:] 空白文字
[:cntrl:] 制御文字
[:digit:] 数字
[:graph:] 印字できる文字(空白除く)
[:lower:] 英小文字
[:print:] 印字できる文字(空白含む)
[:punct:] 句読点
[:space:] 水平および垂直方向(\nなど)の空白
[:upper:] 英大文字
[:xdigit:] 16進数
※ オプションなどは個人的に重要と考えられるものを記述しており、記載の無いものは、manページや関連書籍などを参照願います。
※ 実行例の記述は、不要と考えられる部分の削除などの修正を行ったものを掲載しています。
※ 実行例の実行環境はFreeBSD 9.1です。
※ 実行例の記述は、不要と考えられる部分の削除などの修正を行ったものを掲載しています。
※ 実行例の実行環境はFreeBSD 9.1です。
(例)オプション無し
実行結果
$ cat test.txt
!"#$%&'()*+,-./
0123456789:;<=>?
@ABCDEFGHIJKLMNO
PQRSTUVWXYZ[\]^_
`abcdefghijklmno
pqrstuvwxyz{|}~ ← 最後の0x7Fの文字は省略
$ tr [:alnum:] '-' < test.txt
!"#$%&'()*+,-./
----------:;<=>?
@---------------
-----------[\]^_
`---------------
-----------{|}~
実行結果
$ cat test.txt
!"#$%&'()*+,-./
0123456789:;<=>?
@ABCDEFGHIJKLMNO
PQRSTUVWXYZ[\]^_
`abcdefghijklmno
pqrstuvwxyz{|}~ ← 最後の0x7Fの文字は省略
$ tr -c "[:alnum:]\n" '-' < test.txt
----------------
0123456789------
-ABCDEFGHIJKLMNO
PQRSTUVWXYZ-----
-abcdefghijklmno
pqrstuvwxyz----
$ tr -c "[:alpha:]\n" '-' < test.txt
----------------
----------------
-ABCDEFGHIJKLMNO
PQRSTUVWXYZ-----
-abcdefghijklmno
pqrstuvwxyz----
$ tr -c "[:digit:]\n" '-' < test.txt
----------------
0123456789------
----------------
----------------
----------------
---------------
$ tr -c "[:graph:]\n" '-' < test.txt
-!"#$%&'()*+,-./
0123456789:;<=>?
@ABCDEFGHIJKLMNO
PQRSTUVWXYZ[\]^_
`abcdefghijklmno
pqrstuvwxyz{|}~
$ tr -c "[:lower:]\n" '-' < test.txt
----------------
----------------
----------------
----------------
-abcdefghijklmno
pqrstuvwxyz----
$ tr -c "[:print:]\n" '-' < test.txt
!"#$%&'()*+,-./
0123456789:;<=>?
@ABCDEFGHIJKLMNO
PQRSTUVWXYZ[\]^_
`abcdefghijklmno
pqrstuvwxyz{|}~
$ tr -c "[:punct:]\n" '-' < test.txt
-!"#$%&'()*+,-./
----------:;<=>?
@---------------
-----------[\]^_
`---------------
-----------{|}~
$ tr -c "[:upper:]\n" '-' < test.txt
----------------
----------------
-ABCDEFGHIJKLMNO
PQRSTUVWXYZ-----
----------------
---------------
$ tr -c "[:xdigit:]\n" '-' < test.txt
----------------
0123456789------
-ABCDEF---------
----------------
-abcdef---------
---------------
実行結果
$ cat test.txt
!"#$%&'()*+,-./
0123456789:;<=>?
@ABCDEFGHIJKLMNO
PQRSTUVWXYZ[\]^_
`abcdefghijklmno
pqrstuvwxyz{|}~ ← 最後の0x7Fの文字は省略
$ tr -c -d "[:alpha:]\n" < test.txt
ABCDEFGHIJKLMNO
PQRSTUVWXYZ
abcdefghijklmno
pqrstuvwxyz
実行結果
$ tr -s [:upper:] [:lower:]
ddddffff
df