Bash 用空格替换前缀

Bash replace prefix with spaces

如何从 Bash 中的字符串中删除前缀?

例如:

STRING1="My name is James"
echo "${STRING1}" 
# My name is James

NAME="${STRING1#???}"
echo "${NAME}" 
# James

为此,您必须转义前缀字符串中的特殊符号。

NAME="${STRING1#My\ name\ is\ }"
echo "${NAME}"
# James

同样的事情就够了。

备选方案FOO=${FOO//$WORDTOREMOVE/}

$ STRING1="My name is James"
$ NAME="${STRING1//My name is /}"
$ echo "${NAME}"
James

根据@gniourf_gniourf的建议更新FOO=${FOO/#$WORDTOREMOVE/}

$ NAME="${STRING1/#My name is /}"
$ echo "${NAME}"
James