はじめに
このチュートリアルでは、Linux の tr
(translate) コマンドを使用して、テキストファイル内またはコマンド出力の文字を置換、削除、または変換するプロセスを案内します。tr
コマンドは、さまざまなテキスト変換を実行できる汎用ツールであり、Linux ツールボックスの中でも非常に便利なツールです。
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
このチュートリアルでは、Linux の tr
(translate) コマンドを使用して、テキストファイル内またはコマンド出力の文字を置換、削除、または変換するプロセスを案内します。tr
コマンドは、さまざまなテキスト変換を実行できる汎用ツールであり、Linux ツールボックスの中でも非常に便利なツールです。
tr
コマンドの理解tr
コマンドは "translate" の略で、与えられた入力内の文字を置換、削除、または圧縮することができる強力な Linux ユーティリティです。これはさまざまなテキスト操作タスクに使用できる汎用ツールであり、Linux ユーザーのツールキットに欠かせない存在です。
tr
コマンドとは?tr
コマンドは、標準入力(通常はファイルまたは他のコマンドの出力)から文字を変換または削除し、結果を標準出力に書き出すために使用される標準的な Unix/Linux ユーティリティです。以下のようなさまざまな文字変換を実行するために使用できます。
tr
コマンドの基本的な構文は次のとおりです。
tr [OPTION] SET1 [SET2]
ここで、SET1
と SET2
は変換または削除する文字の集合です。OPTION
パラメータは、--delete
で SET1
の文字を削除したり、--squeeze-repeats
で繰り返される文字を圧縮したりするなど、追加の動作を指定するために使用できます。
tr
での文字集合の理解tr
コマンドは文字集合を操作します。文字集合はさまざまな方法で定義されます。
a
、b
、または 1
などの個々の文字を指定できます。-
) 演算子を使用して、a-z
や 0-9
などの文字範囲を指定できます。[:upper:]
で大文字、[:lower:]
で小文字、[:digit:]
で数字など、事前定義された文字クラスを使用できます。これらの文字集合は、それぞれ入力文字と出力文字を定義するために SET1
と SET2
の両方で使用できます。
tr
コマンドのいくつかの実用例を見てみましょう。
小文字を大文字に置換する:
echo "hello, world!" | tr "[:lower:]" "[:upper:]"
出力: HELLO, WORLD!
特定の文字を削除する:
echo "abc123def" | tr -d "1-3"
出力: abcdef
繰り返される文字を圧縮する:
echo "hello world" | tr -s " "
出力: hello world
これらの例は、tr
コマンドの汎用性と、さまざまなテキスト操作タスクにどのように使用できるかを示しています。次のセクションでは、tr
コマンドのより高度な使用例と実用的なアプリケーションについて詳しく見ていきます。
tr
を使った文字の置換tr
コマンドの主な用途は、与えられた入力内の文字を置換することです。これは、データクリーニング、形式変換、文字エンコーディング変換など、さまざまなテキスト操作タスクに役立ちます。
tr
コマンドを使って文字を置換する基本的な構文は次のとおりです。
tr 'SET1' 'SET2'
ここで、SET1
は置換したい文字を表し、SET2
は置換に使用したい文字を表します。tr
コマンドは、SET1
内の各文字を SET2
内の対応する文字に置換します。
たとえば、すべての小文字を大文字に置換するには、次のコマンドを使用できます。
echo "hello, world!" | tr "[:lower:]" "[:upper:]"
出力:
HELLO, WORLD!
この例では、[:lower:]
はすべての小文字の集合を表し、[:upper:]
はすべての大文字の集合を表します。tr
コマンドは、各小文字をそれに対応する大文字に置換します。
文字範囲を使用して、文字の集合を置換することもできます。たとえば、すべての数字を対応する大文字に置換するには、次のコマンドを使用できます。
echo "abc123def" | tr "0-9" "A-J"
出力:
abcABCdef
この場合、0-9
は数字の範囲を表し、A-J
は A から J までの大文字の範囲を表します。tr
コマンドは、各数字を対応する大文字に置換します。
tr
コマンドを使って文字を置換するさらなる実用例をいくつか紹介します。
スペースをアンダースコアに置換する:
echo "hello world" | tr " " "_"
出力: hello_world
複数の文字を一度に置換する:
echo "abc123def" | tr "a-c 3" "x-z 9"
出力: xyz129def
文字エンコーディングを変換する:
echo "résumé" | tr "é" "e"
出力: resume
これらの例は、tr
コマンドが文字置換タスクを実行する際の柔軟性を示しています。構文とさまざまな文字集合オプションを理解することで、tr
コマンドを特定のテキスト操作ニーズに合わせることができます。
tr
の実用的なアプリケーションtr
コマンドは、幅広い実用的なシナリオで使用できる汎用ツールです。以下は tr
コマンドの一般的なアプリケーションのいくつかです。
tr
コマンドの最も一般的な使用例の 1 つは、データクリーニングと変換です。たとえば、tr
を使用して以下のことができます。
## ファイルから英数字以外の文字を削除する
cat file.txt | tr -cd '[:alnum:]'
## ファイルを大文字に変換する
cat file.txt | tr '[:lower:]' '[:upper:]'
## CSV ファイル内のコンマをセミコロンに置換する
cat file.csv | tr ',' ';'
tr
コマンドは、以下のようなさまざまなテキスト操作と整形タスクにも使用できます。
## 先頭と末尾のスペースを削除する
echo " hello, world! " | tr -d '[:space:]'
## 複数のスペースを 1 つのスペースに圧縮する
echo "hello world" | tr -s ' '
## "foo" のすべての出現を "bar" に置換する
echo "foo is foo" | tr "foo" "bar"
tr
コマンドは、以下のような文字エンコーディング変換を行うのに役立ちます。
## 文字列からアクセントを削除する
echo "résumé" | tr "é" "e"
## ファイルを ISO-8859-1 から UTF-8 に変換する
iconv -f ISO-8859-1 -t UTF-8 file.txt | tr -d '\r'
これらは tr
コマンドの実用的なアプリケーションのほんの一例です。その機能を理解し、他の Linux ユーティリティと組み合わせることで、幅広いニーズに対応する強力なテキスト処理ワークフローを作成することができます。
このチュートリアルでは、Linux の tr
コマンドを使用して、テキストファイルやコマンド出力内の文字を置換、削除、または変換する方法を学びました。さまざまな例と使用例を調べ、このコマンドラインツールの強力さと柔軟性を実証しました。tr
コマンドを習得することで、テキスト処理タスクを合理化し、Linux 環境での全体的な生産性を向上させることができます。