Linux の tr コマンドは、ファイル内の文字を変換または削除するために使用されます。
tr コマンドは、標準入力デバイスからデータを読み取り、その結果を文字列変換して標準出力デバイスに出力します。
文法
tr [-cdst][--help][--version][第一字符集][第二字符集]
tr [OPTION]…SET1[SET2]
パラメータの説明:
- -c, --complement: 設定文字を反転します。つまり、SET1 に一致する部分は処理されず、一致しない残りの部分が変換されます。
- -d, --delete: 指示文字を削除
- -s, --squeeze-repeats: 連続する繰り返し文字を指定された単一文字に圧縮します
- -t, --truncate-set1: SET1 で指定された範囲を、SET2 で設定された長さと等しくなるように切り捨てます。
- --help: プログラムの使用情報を表示します
- --version: プログラム自体のバージョン情報を表示
文字セットは値を取ることができます
- \NNN、文字を表します (文字は 8 進数で表されます)
- \\ バックスラッシュ
- \a Ctrl-G 着信音
- \b Ctrl-H バックスペース
- \f Ctrl-L 改行
- \n Ctrl-J 改行
- \r Ctrl-M エンター
- \t Ctrl-I タブ键
- \v Ctrl-X 水平タブ
- CHAR1-CHAR2: CHAR1 から CHAR2 までの文字の範囲を指定します.範囲の指定は ASCII コードの順序に基づいており、大小ではなく小から大までのみ可能です.
- [CHAR*]: これは SET2 の特別な設定です。この機能は、指定された文字を SET1 と同じ長さまで繰り返すことです。
- [CHAR*REPEAT]:これもSET2専用の設定で、指定した文字を設定したREPEAT回まで繰り返す機能です(REPEAT回数は0から始まる8進数で計算)
- [:alnum:] : すべての英字と数字
- [:alpha:] : すべてのアルファベット文字
- [:blank:] : すべての水平スペース
- [:cntrl:] : すべての制御文字
- [:桁:] : すべての桁
- [:graph:] : すべての印刷可能な文字 (スペースを除く)
- [:lower:] : すべて小文字
- [:print:] : すべての印刷可能な文字 (スペースを含む)
- [:punct:] : すべての句読点
- [:space:] : 水平方向と垂直方向のすべてのスペース
- [:upper:] : すべて大文字
- [:xdigit:] : すべての 16 進数
- [=CHAR=] : 指定した文字に一致するすべての文字 (等号の CHAR はカスタマイズ可能な文字を表します)
例
ファイル data.txt 内のすべての小文字を大文字に変換します。
xjh@ubuntu:~/iot/tmp$ cat data.txt
On Tuesday, the Linux System
Administrator's group meeting will be held.
All System Administrators should attend.
Thank you for your attendance.
xjh@ubuntu:~/iot/tmp$ cat data.txt | tr [:lower:] [:upper:] //写法1
ON TUESDAY, THE LINUX SYSTEM
ADMINISTRATOR'S GROUP MEETING WILL BE HELD.
ALL SYSTEM ADMINISTRATORS SHOULD ATTEND.
THANK YOU FOR YOUR ATTENDANCE.
xjh@ubuntu:~/iot/tmp$ cat data.txt
On Tuesday, the Linux System
Administrator's group meeting will be held.
All System Administrators should attend.
Thank you for your attendance.
xjh@ubuntu:~/iot/tmp$ cat data.txt | tr a-z A-Z //写法2
ON TUESDAY, THE LINUX SYSTEM
ADMINISTRATOR'S GROUP MEETING WILL BE HELD.
ALL SYSTEM ADMINISTRATORS SHOULD ATTEND.
THANK YOU FOR YOUR ATTENDANCE.
xjh@ubuntu:~/iot/tmp$ cat data.txt | tr '[:lower:]' '[:upper:]' //写法3
ON TUESDAY, THE LINUX SYSTEM
ADMINISTRATOR'S GROUP MEETING WILL BE HELD.
ALL SYSTEM ADMINISTRATORS SHOULD ATTEND.
THANK YOU FOR YOUR ATTENDANCE.
xjh@ubuntu:~/iot/tmp$