📅  最后修改于: 2023-12-03 15:14:10.889000             🧑  作者: Mango
在Shell脚本中,我们经常需要对字符串进行操作。其中,一个常见的操作是替换子字符串。在Shell-Bash中,我们可以使用cmd
子字符串替换来实现这个目标。
以下是cmd
子字符串替换的语法:
${var/old/new}
${var//old/new}
${var/#old/new}
${var/%old/new}
其中,var
表示要操作的字符串变量,old
表示要替换的原始子字符串,new
表示要替换成的新子字符串。
/
表示只替换第一个匹配的子字符串;//
表示替换所有匹配的子字符串;#
表示只替换在字符串开头的匹配;%
表示只替换在字符串结尾的匹配。
以下是一些示例,以说明如何使用cmd
子字符串替换。
假设我们有一个名为str
的字符串变量:
str="Hello, world! Hello, Universe!"
现在,我们想要将其中的Hello
全部替换为Hi
。我们可以使用以下命令:
new_str=${str//Hello/Hi}
echo $new_str
# 输出: Hi, world! Hi, Universe!
使用//
将替换所有匹配的Hello
。
如果我们只想要替换开头的Hello
,可以使用以下命令:
new_str=${str/#Hello/Hi}
echo $new_str
# 输出: Hi, world! Hello, Universe!
使用#
只替换开头的Hello
。
如果我们只想要替换结尾的Universe
,可以使用以下命令:
new_str=${str/%Universe/Galaxy}
echo $new_str
# 输出: Hello, world! Hello, Galaxy!
使用%
只替换结尾的Universe
。
cmd
子字符串替换是一个强大的Shell操作,可用于快速替换字符串中的子字符串。上述示例中的命令只是冰山一角,您可以根据自己的需要进行更多的替换操作。