Bash 中的字符串替换

Nilesh Katuwal 2023年1月30日
  1. 在 Bash 中用一个子字符串替换另一个字符串
  2. 将整个字符串替换为子字符串
  3. 替换 Bash 中字符串中检测到的最后一个子字符串
Bash 中的字符串替换

Bash 允许我们调用其他程序,并且通过指定必要的输入和输出,我们可以生成任何结果。本文将介绍如何用另一个字符串替换一个子字符串。

在 Bash 中用一个子字符串替换另一个字符串

下面的命令将用替换字符串替换发现的与从字符串的第一个字符开始的子字符串匹配的第一个字符串。

${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

现在有两个斜杠 (//) 而不是一个 (/)。在输出中,我们可以看到上述命令替换了所有等于替换字符串的子字符串。

替换 Bash 中字符串中检测到的最后一个子字符串

我们将使用下面的命令将字符串中检测到的最后一个子字符串替换为替换字符串。

${string/%substring/replacement}

让我们看一个例子:

$ text="I am learning linux and linux"

$ reptext="bash"

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

输出:

I am learning linux and bash