trコマンド : 標準入力置換
Linuxコマンド(テキスト処理)
目次
コマンド概要
-
trコマンドは標準入力を指定条件で置換して標準出力するコマンドです。
Noteエスケープシーケンスの置換(削除)も可能であるため改行コードを変換(削除)したいケースなどでもよく利用されます。 -
第1引数(文字列1)には変換対象の文字列を指定し、第2引数(文字列2)には変換後の文字列を指定します。
コマンド書式
コマンド書式
tr [オプション] [文字列1 [文字列2]]
オプション | 説明 |
---|---|
-c 文字列1 文字列2 | 指定した文字列1以外を文字列2で置換する。 |
-d 文字列 | 指定した文字列を削除する。 |
-s 文字列 | 指定した文字列の繰り返しを1文字に圧縮する。 |
-
指定可能な文字列には以下のようなものがあります。
指定方法 例 説明 範囲 'a-z' '0-3'であれば0,1,2,3の4文字を意味し、'a-c'であればa,b,cと3文字を意味する。 繰り返し 'a*3' 「a」の3個繰り返しを意味する。 文字クラス [:alnum:] 英字と数字 [:alpha:] 英字 [:digit:] 数字 [:lower:] 英小文字 [:space:] 空白 [:upper:] 英大文字
コマンド使用例
項目 | 値 | 補足 |
---|---|---|
OS | Amazon Linux 2 | |
シェル | bash 4.2.46 | |
コマンド | tr (GNU coreutils) 8.22 | |
PS1 | [\u@\h \W]$ | プロンプト表示形式は [ユーザ名@ホスト名 カレントディレクトリ名]ユーザ権限 |
PS2 | > | 継続行のプロンプト表示形式 |
tr : 文字列置換
-
tr
コマンドを使用すると標準入力を指定条件で置換して標準出力することができます。コマンド例// テスト用ファイル作成 [username@hostname ~]$ echo 'Lorem ipsum dolor sit amet, consectetur adipisicing elit.' > tempfile1 // テスト用ファイルの中身を出力 [username@hostname ~]$ cat tempfile1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. // テスト用ファイルの中身について英小文字を英大文字に置換して出力 [username@hostname ~]$ tr 'a-z' 'A-Z' < tempfile1LOREM IPSUM DOLOR SIT AMET, CONSECTETUR ADIPISICING ELIT. // テスト用ファイルの中身について英小文字を英大文字に置換して出力 [username@hostname ~]$ tr [:lower:] [:upper:] < tempfile1LOREM IPSUM DOLOR SIT AMET, CONSECTETUR ADIPISICING ELIT.
tr -c : 指定文字以外を置換
-
-c
オプションを使用すると指定文字以外を置換したテキストを出力します。コマンド例// テスト用ファイル作成 [username@hostname ~]$ echo 'Lorem ipsum dolor sit amet, consectetur adipisicing elit.' > tempfile1 // テストファイルの中身を表示 [username@hostname ~]$ cat tempfile1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. // tempfile1の中身について指定文字(半角スペース、カンマ、ドット、改行コード)以外の文字列を「x」に置換して出力 [username@hostname ~]$ tr -c ' ,.\n' x < tempfile1xxxxx xxxxx xxxxx xxx xxxx, xxxxxxxxxxx xxxxxxxxxxx xxxx.
tr -d : 指定文字を削除
-
-d
オプションを使用すると指定文字列を削除して出力します。コマンド例// テスト用ファイル作成 [username@hostname ~]$ echo -e 'aaa\r\nbbb\r\nccc' > tempfile1 // テストファイルの中身を表示 [username@hostname ~]$ cat -e tempfile1 aaa^M$ bbb^M$ ccc$ // 指定文字列を削除して出力(Windows改行コードCR+LFをUNIX改行コードLFに変換) [username@hostname ~]$ tr -d '\r' < tempfile1 | cat -eaaa$ bbb$ ccc$
tr -s : 繰り返し文字圧縮
-
-s
オプションを使用すると指定した文字列の繰り返しを1文字にした上で出力します。コマンド例// テスト用ファイル作成 [username@hostname ~]$ echo -e 'aaa\nbbb\nccc' > tempfile1 // テストファイルの中身を表示 [username@hostname ~]$ cat tempfile1 aaa bbb ccc // 繰り返し文字を1文字に圧縮 [username@hostname ~]$ tr -s ac < tempfile1a bbb c
コメント