ウェブサイト検索

1つの文字を別の文字に置き換える方法 – Bash


Bashスクリプトでは、データ処理、テキスト操作、その他多くのユースケースに役立つため、文字列内の1つの文字を別の文字に置き換えることが一般的です。幸いなことに、Bashはこれを行うためのいくつかの組み込みメソッドを提供しており、この記事ではBashスクリプト内で文字を置き換える最も一般的な方法のいくつかを紹介します。

Bashスクリプトで文字を別の文字に置き換える方法

1文字を別の文字に置き換えることは、Sashスクリプトで一般的な作業であり、さまざまなシナリオで役立ちます。ここでは、Bashスクリプトで1文字を別の文字に置き換える簡単な3つの方法を紹介します:

  • トランスコマンドを通して
  • sedコマンドを通して
  • パラメータ展開を通して

Bashでtrコマンドを使用して1つの文字を別の文字に置き換える方法

trコマンドは、文字列内の文字を翻訳、削除、または圧縮するためのシンプルなツールです。置き換える文字とその置き換えを指定することで、一つの文字を別の文字に置き換えることができます。これがこのコマンドを使用するための構文です:

tr '<character-to-be-replaced>' '<new-character>'

ここで例として、私が「Hello Linux」という文字列を取り、その中の大文字のLを大文字のWに置き換えたい場合、次のようにtrコマンドを使って行うことができます:

echo "hello Linux" | tr 'L' 'W'

こちらが、trコマンドを使用して1つの文字を別の文字に置き換える方法を示す完全なbashコードです:

#!/bin/bash

Main_string="hello Linux"

export New_string=$(echo "$Main_string" | tr 'L' 'w')

echo "Main_string:" $Main_string

echo "Modified_string:" $New_string

ここにBashスクリプトの出力があります。Lはwに置き換えられています:

Bashのsedコマンドを使用して1つの文字を別の文字に置き換える方法

Bashで文字を別の文字に置き換える別の方法は、sedコマンドを使用することです。sedコマンドはストリームエディタであり、置換を含む文字列に対してさまざまな操作を実行できます。このコマンドを使って1つの文字を別の文字に置き換えるための構文は次のとおりです:

sed 's/<character-to-be-replaced>/<new-character>/g'

ここに例として、「Hello Linux」という文字列を取り、そこにある小文字の「L」を「w」に置き換えたい場合、trコマンドを使って次のように行うことができます:

echo "hello Linux" | sed 's/L/w/g'

こちらが、sedコマンドを使用して1つの文字を別の文字に置き換える方法を示す完全なbashコードです:

#!/bin/bash

Main_string="hello Linux"

New_string=$(echo "$Main_string" | sed 's/L/w/g')

echo "Main_string:" $Main_string

echo "Modified_string:" $New_string

この例では、echo コマンドを使用して文字列「hello Linux」を出力し、その出力を sed コマンドにパイプしています。sed コマンドは置換(s)コマンドを使用して、「L」という文字のすべての出現を「w」に置き換えています。コマンドの最後にある g オプションは、文字列内の文字のすべての出現を置き換えるよう sed に指示します。 このコマンドの出力は「hello winux」になります。

Bashでパラメータ展開を使用して1文字を別の文字に置き換える方法

bashで文字を別の文字に置き換える別の方法として、パラメータ展開を使用することができます。以下は、元の文字列の「L」を新しい文字「w」に置き換える例です:

#!/bin/bash

Main_string="hello Linux"

New_string="${Main_string//L/w}"

echo "Main_string:" $Main_string

echo "Modified_string:" $New_string

この例では、パラメータ展開を使用して、Main_string変数内の小文字の「h」をすべて文字「s」に置き換えています。このコマンドの出力は「hello winux」となります。

結論

Bashで文字を別の文字に置き換える方法はいくつかあり、trコマンド、sedコマンド、パラメータ展開を使用することができます。それぞれの方法には利点と欠点があるため、このガイドではそれを行うための3つの方法をすべて紹介しているので、特定の使用ケースに最適なものを選んでください。