Bash での文字列の置換

Nilesh Katuwal 2023年1月30日
  1. Bash で 1つのサブストリングを別のストリングに置き換える
  2. 文字列全体を部分文字列に置き換える
  3. Bash の文字列で検出された最後の部分文字列を置換する
Bash での文字列の置換

Bash を使用すると、他のプログラムを呼び出すことができ、必要な入力と出力を指定することで、任意の結果を生成できます。この記事では、ある部分文字列を別の文字列に置き換える方法を紹介します。

Bash で 1つのサブストリングを別のストリングに置き換える

以下のコマンドは、文字列の最初の文字から始まる部分文字列と一致する最初に検出された文字列を置換文字列に置き換えます。

${string/substring/replacement}

例を見てみましょう。

$ text="I am learning linux and linux"

$ reptext="bash"

$ echo "${text/linux/"$reptext"}''

出力:

I am learning bash and linux

上記のように、最初の文字列 linuxbash に置き換えられ、他の文字列は変更されません。

文字列全体を部分文字列に置き換える

以下のコマンドを使用して、部分文字列に等しい文字列全体を置換文字列に置き換えます。

${string//substring/replacement}

例を見てみましょう:

$ text="I am learning linux and linux"

$ reptext="bash"

$ echo "${text//linux/"$reptext"}"

出力:

I am learning bash and bash

現在、1つの/ではなく 2つのスラッシュ//があります。出力では、上記のコマンドが置換文字列に等しいすべてのサブ文字列を置換したことがわかります。

Bash の文字列で検出された最後の部分文字列を置換する

次のコマンドを使用して、文字列で検出された最後のサブ文字列を置換文字列に置き換えます。

${string/%substring/replacement}

例を見てみましょう:

$ text="I am learning linux and linux"

$ reptext="bash"

$ echo "${text/%linux/"$reptext"}"

出力:

I am learning linux and bash