GNU Core Utilities/tr
tr
コマンドは、文字の変換や削除を行うためのコマンドです。標準入力から文字列を受け取り、指定した変換ルールに従って出力します。GNU coreutils に含まれており、Linux では GNU 版が、FreeBSD では BSD 版が提供されています。基本的な動作は共通していますが、細かなオプションの違いがあります。
基本的な使い方
編集tr [オプション] SET1 [SET2]
主なオプション(GNU coreutils版)
編集主なオプション オプション 説明 -c, --complement
指定した文字セット以外の文字を変換 -d, --delete
文字を削除 -s, --squeeze-repeats
連続する同じ文字を1文字に圧縮 -T, --translate
特殊文字の変換を有効にする
例
編集小文字を大文字に変換
編集echo "hello" | tr 'a-z' 'A-Z'
文字列 "hello" を小文字から大文字に変換して表示。
複数の空白を1つの空白に圧縮
編集echo "this is a test" | tr -s ' '
複数の空白を1つの空白に圧縮して表示。
特定の文字を削除
編集echo "hello 123" | tr -d '0-9'
数字を削除し、"hello " を表示。
文字セットを補完して変換
編集echo "hello" | tr -c 'a-z' 'A-Z'
アルファベット以外の文字を大文字に変換。
FreeBSD 版との違い
編集FreeBSD でも tr
コマンドは提供されていますが、GNU coreutils 版といくつか違いがあります。
主な違い:
編集-T
(特殊文字の変換を有効にする)オプションがない- FreeBSD の
tr
には-T
オプションがなく、特殊文字の変換機能を利用することはできません。
- FreeBSD の
- GNU coreutils 版を FreeBSD で使う方法
coreutils
パッケージをインストールするとgtr
という名前で GNU 版のtr
が使える。
pkg install coreutils gtr 'a-z' 'A-Z' # GNU版の tr を使用
詳しくは、それぞれの環境で man tr
を確認してください。