2016-12-29 75 views
-1

如何从Bash中的字符串中删除前缀?Bash用空格替换前缀

例如:

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

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

什么是你的问题?看起来像你自己的Q/A会话 – Inian

+0

@Inian有一个选项可以分享知识。 https://stackoverflow.blog/2011/07/its-ok-to-ask-and-answer-your-own-questions/ –

+0

它是完全正常的,它只是它没有详细足够你想要做什么和你如何解决它,可能会添加一点点解释吗?我没有投票BTW – Inian

回答

0

替代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 
+1

更好地写成'“$ {string1 /#我的名字是/}”':不需要''',因为问题要求_prefix,_最好用'#'来定位它。 –

0

要做到这一点,你必须逃脱的前缀字符串的特殊符号。

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

同样的事情就够了。

+1

你在说什么?为什么你需要“逃避特殊符号”?如果你不这样怎么办? –

+1

@gniourf_gniourf嗯..真的。我花了大约30分钟时间调查为什么“$ {STRING1#我的名字是}”不起作用。所以最好删除问题。 –

+0

@AndriiAbramov:如果你仍然有一个问题,随时作为一个适当的问题发布它与样品输入和输出的必要细节。 – Inian