(最終更新月:2023年5月)
✔このような方へ向けて書かれた記事となります
「trコマンドについて教えてほしい」
「trコマンドってどうやって書くの?」
「trコマンドの実例が見てみたい」
✔当記事を通じてお伝えすること
- trコマンドとは?
- trコマンドの書き方やオプションについて
- trコマンドを使った実例
当記事では、trコマンドについての基本や書き方についてはもちろん、応用した使い方やオプションの一覧まで、実例付きで丁寧に解説しています。
ぜひ最後までご覧ください。
trコマンドについての基礎知識4選
trコマンドについての基本からみていきましょう。
使いこなすためにも、以下の4つには必ず目を通してください。
- trコマンドとは
- trコマンドの基本構文
- オプションと引数の説明
- trコマンドの一般的な使用例
trコマンドとは
trコマンドは、主に文字の変換や削除をおこなえるコマンド。
trは “translate”(変換)または “transliterate”(転写)の略です。
trコマンドの基本構文
trコマンドの基本構文は以下のようになります。
tr [オプション] [セット1] [セット2]
ここで、[セット1] は変換元の文字セットを、[セット2] は変換先の文字セットを指定します。
例えば以下は小文字のアルファベットを大文字にします。
echo "hello world" | tr 'a-z' 'A-Z'
echoコマンドと組み合わせ|(パイプ)により、文字列を受け取ります。
オプションと引数の説明
trコマンドにはいくつかのオプションがありますが、主に以下の2つがよく使われます。
- -d:削除オプション。指定した文字セットを削除
- -s:連続文字の圧縮オプション。連続する同じ文字を1つにまとめる
trコマンドの一般的な使用例
以下は、trコマンドの一般的な使用例です。
大文字を小文字に変換
echo "HELLO, WORLD!" | tr 'A-Z' 'a-z'
アルファベット以外の文字を削除
echo "He3llo, W0rld!" | tr -d '0-9.,!'
文字の変換と削除
文字の変換や削除をおこなう方法についてみていきます。
一つずつ覚えていきましょう。
- 文字の変換方法
- 文字の削除方法
- 実践練習:文字変換と削除
文字の変換方法
trコマンドを使って文字を変換するには、変換元と変換先の文字セットを指定します。
例えば、以下のコマンドはアルファベットの大文字を小文字に変換します。
echo "HELLO, WORLD!" | tr 'A-Z' 'a-z'
文字の削除方法
trコマンドで文字を削除するには、-dオプションを使用し、削除対象の文字セットを指定します。
例えば、以下のコマンドは数字と句読点を削除する方法です。
$ echo "H3llo W0rld" | tr -d '0-9.,!'
Hllo Wrld
実践練習:文字変換と削除
以下の練習問題を解いて、文字変換と削除のスキルを確認しましょう。
1. 文字列 “Tr4n5lat3 m3!” から数字を削除し、すべての大文字を小文字に変換してください。
回答
echo "Tr4n5lat3 m3" | tr -d '0-9' | tr 'A-Z' 'a-z'
trnlat m
2. 文字列 “Thi—s is– a– te-st.” からハイフンを削除し、連続するスペースを1つにまとめてください。
回答
echo "Thi---s is-- a-- te-st." | tr -d '-' | tr -s ' '
This is a test.
文字クラスとの連携
文字クラストの連携方法を見ていきましょう。
trコマンドを使うにあたっては必須の知識です。
- 文字クラスとは
- trコマンドで使用できる文字クラス
- 文字クラスを用いたtr コマンドの使用例
文字クラスとは
文字クラスは、特定の種類の文字を表すための短縮形です。
trコマンドでは、文字クラスを使って簡潔に文字セットを指定できます。
trコマンドで使用できる文字クラス
trコマンドで使用できる主な文字クラスは以下のとおりです。
- [:alnum:]:英数字(アルファベットと数字)
- [:alpha:]:アルファベット
- [:digit:]:数字
- [:lower:]:小文字
- [:upper:]:大文字
- [:space:]:空白文字(スペース、タブ、改行など)
文字クラスを用いたtr コマンドの使用例
以下は、文字クラスを使用したtr コマンドの例です。
数字をアスタリスク (*) に変換
echo "He3llo, W0rld!" | tr '[:digit:]' '*'
trコマンドのオプション一覧
trコマンドのオプション一覧です。
実例とともにご覧ください。
オプション | 名前 | 説明 | 実例 |
---|---|---|---|
-c | Complement | 指定された文字セットの補集合を作成します。 | tr -c ‘[:alnum:]’ ‘\n’ < input.txt > output.txt |
-d | Delete | 指定された文字セットを削除します。 | tr -d ‘[:digit:]’ < input.txt > output.txt |
-s | Squeeze Repeats | 指定された文字セットの連続した繰り返しを1つにまとめます。 | tr -s ‘[:blank:]’ ‘ ‘ < input.txt > output.txt |
-t | Truncate Set1 | SET1の長さをSET2の長さに合わせて切り詰めます。 | tr -t ‘[:lower:]’ ‘[:upper:]’ < input.txt > output.txt |
trコマンドの応用
trコマンドの応用した使い方をご紹介します。
ここまで理解できたのであれば、しっかりとマスターしておきましょう。
- 連続する空白文字の削除
- アルファベットの大文字・小文字変換
- 文字列の暗号化と復号化
連続する空白文字の削除
trコマンドの -sオプションを使用して、連続する空白文字を1つにまとめられます。
echo "Thi s is a te st." | tr -s ' '
アルファベットの大文字・小文字変換
trコマンドを使ってアルファベットの大文字を小文字に変換したり、小文字を大文字に変換したりできます。
大文字を小文字に変換
echo "HELLO, WORLD!" | tr '[:upper:]' '[:lower:]'
小文字を大文字に変換
echo "hello, world!" | tr '[:lower:]' '[:upper:]'
文字列の暗号化と復号化
trコマンドを使って、簡易的な文字列の暗号化と復号化が可能です。
例えば、シーザー暗号を実装できます。
シーザー暗号の暗号化(3文字シフト):
echo "hello, world!" | tr 'a-z' 'd-za-c'
シーザー暗号の復号化(3文字シフト):
echo "khoor, zruog!" | tr 'd-za-c' 'a-z'
シーザー暗号は、文字列内の各文字を辞書の順番で、3文字分ずらして暗号化する手法です。
trコマンドのベストプラクティス
trコマンドのおすすめな使い方をご覧いただきます。
以下を参考にして、作業効率化をはかりましょう。
- 効率的なコマンドの組み合わせ
- パイプラインを活用した応用事例
効率的なコマンドの組み合わせ
trコマンドは、他のコマンドと組み合わせることで、より効果的に文字処理をおこなえます。
例えば、`grep` コマンドや `awk` コマンドと組み合わせて、特定の条件にマッチする行のみを抽出して文字変換や削除をおこなえます。
grepコマンドについてはこちら。
awkコマンドについてはこちら。
パイプラインを活用した応用事例
trコマンドは、Unixのパイプライン機能を活用することで、複数のコマンドを連携させた処理が可能です。
以下は、trコマンドと他のコマンドを組み合わせた応用例です。
大文字を小文字に変換した後、重複した行を削除
cat input.txt | tr '[:upper:]' '[:lower:]' | sort | uniq > output.txt
よくあるトラブルシューティングとFAQ
trコマンドを使用したときによくあるトラブルとその対処法をご紹介します。
事前に理解しておくことで、できる限りトラブルを回避しましょう。
- 文字列の範囲指定に関する問題
- 特殊文字の扱いに関する問題
- オプションと引数の指定に関する問題
- よくある質問と回答
文字列の範囲指定に関する問題
範囲指定を行う際、ハイフン(-) を使用しますが、誤った範囲指定が原因で意図しない結果が出力されることがあります。
範囲指定を正しくおこなうように注意してください。
特殊文字の扱いに関する問題
trコマンドで特殊文字を扱う際には、エスケープ文字(バックスラッシュ)を使用して表現する必要があります。
例えば、改行文字やタブ文字を扱う場合は以下のようになります。
改行文字をスペースに変換
echo "Hello\nWorld" | tr '\n' ' '
タブ文字をスペースに変換
echo "Hello\tWorld" | tr '\t' ' '
オプションと引数の指定に関する問題
trコマンドでオプションや引数を正しく指定しなかった場合、予期しない結果が得られることがあります。
オプションや引数の指定方法を確認し、正しく指定してください。
よくある質問と回答
Q: trコマンドで複数の文字を1つの文字に変換することはできますか?
A: はい、できます。以下の例では、数字をすべてアスタリスク (*) に変換しています。
echo "He3llo, W0rld!" | tr '0-9' '*'
まとめと今後の学習方法
当記事では、以下の内容をお伝えしてきました。
- trコマンドの基本構文
- trコマンドの応用実例
- trコマンドのトラブルシューティング
trコマンドを習得したら、他のUnixコマンドも学習することで、より効率的に作業を行うことができます。
例えば、`grep`、`awk`、`sed`、`sort`、`uniq` などがおすすめです。
trコマンドの習得には、実践を通じて様々なケースで使用することが重要です。
日々の作業でtrコマンドを活用することで、スキルを向上させていきましょう。