Bash 中的字符串替换
Nilesh Katuwal
2023年1月30日
2022年5月11日
Bash 允许我们调用其他程序,并且通过指定必要的输入和输出,我们可以生成任何结果。本文将介绍如何用另一个字符串替换一个子字符串。
在 Bash 中用一个子字符串替换另一个字符串
下面的命令将用替换字符串替换发现的与从字符串的第一个字符开始的子字符串匹配的第一个字符串。
${string/substring/replacement}
让我们看一个例子。
$ text="I am learning linux and linux"
$ reptext="bash"
$ echo "${text/linux/"$reptext"}''
输出:
I am learning bash and linux
如上所述,第一个字符串 linux
被 bash
替换,而另一个保持不变。
将整个字符串替换为子字符串
我们使用下面的命令将等于子字符串的整个字符串替换为替换字符串。
${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