如何从Bash中的字符串中删除前缀?Bash用空格替换前缀
例如:
STRING1="My name is James"
echo "${STRING1}"
# My name is James
NAME="${STRING1#???}"
echo "${NAME}"
# James
如何从Bash中的字符串中删除前缀?Bash用空格替换前缀
例如:
STRING1="My name is James"
echo "${STRING1}"
# My name is James
NAME="${STRING1#???}"
echo "${NAME}"
# James
替代:FOO=${FOO//$WORDTOREMOVE/}
$ STRING1="My name is James"
$ NAME="${STRING1//My name is /}"
$ echo "${NAME}"
James
更新按照@ gniourf_gniourf的建议:
$ NAME="${STRING1/#My name is /}"
$ echo "${NAME}"
James
更好地写成'“$ {string1 /#我的名字是/}”':不需要''',因为问题要求_prefix,_最好用'#'来定位它。 –
要做到这一点,你必须逃脱的前缀字符串的特殊符号。
NAME="${STRING1#My\ name\ is\ }"
echo "${NAME}"
# James
同样的事情就够了。
你在说什么?为什么你需要“逃避特殊符号”?如果你不这样怎么办? –
@gniourf_gniourf嗯..真的。我花了大约30分钟时间调查为什么“$ {STRING1#我的名字是}”不起作用。所以最好删除问题。 –
@AndriiAbramov:如果你仍然有一个问题,随时作为一个适当的问题发布它与样品输入和输出的必要细节。 – Inian
什么是你的问题?看起来像你自己的Q/A会话 – Inian
@Inian有一个选项可以分享知识。 https://stackoverflow.blog/2011/07/its-ok-to-ask-and-answer-your-own-questions/ –
它是完全正常的,它只是它没有详细足够你想要做什么和你如何解决它,可能会添加一点点解释吗?我没有投票BTW – Inian