シェル・スクリプト・リファンレス |
コマンド集(機能別) | コマンド集(アルファベット順) | コマンド逆引き大全 | シェル・スクリプト・リファンレス |
文字を変換する「tr」 |
大文字を小文字に変換するなど,各文字を変換したい場合にはtrを利用する。trは以下のように記述する。
echo $変数 | tr 変換対象の文字 変換文字 |
変換対象の文字に当てはまる文字を発見したとき,それに変換文字に変換する。たとえば,「L」を「l」に変換するなら,
$ string="Linux" $ echo $string | tr "L" "l" linux |
とする。また,複数の文字を扱える。たとえば,「L」を「l」,「n」を「N」,「x」を「X」に変換したい場合は,
$ string="Linux" $ echo $string | tr "Lnx" "lNX" liNuX |
と入力する。変換対象の文字の1文字目が変換文字の1文字目に変更され,以降2文字目,3文字目に対応する。
また,「文字-文字」のように範囲で指定することも可能だ。たとえば,大文字を小文字に変更したい場合は,
$ string="LINUX" $ echo $string | tr "A-Z" "a-z" linux |
とする。
変換対象の文字や変換文字にはエスケープ・シーケンスや表に示した文字クラスが利用できる。
文字クラス | 意味 |
---|---|
[:alnum:] | アルファベットと数字 |
[:alpha:] | アルファベット |
[:blank:] | スペースや水平タブ |
[:cntrl:] | コントロール文字 |
[:digit:] | 数字 |
[:graph:] | スペースを含まない表示可能な文字 |
[:lower:] | 小文字アルファベット |
[:print:] | スペースを含む表示可能な文字 |
[:punct:] | 句読点 |
[:space:] | スペースや水平タブ,垂直タブ |
[:upper:] | 大文字アルファベット |
[:xdigit:] | 16進数文字 |
文字クラスを利用すると,大文字を小文字に変換するには,
$ string="LINUX" $ echo $string | tr "[:upper:]" "[:lower:]" linux |
のように記述できる。
関連事項 |
tr,文字を変換する |