Bash删除部分字符串

时间:2014-04-19 19:09:18

标签: bash awk sed grep cut

如果我有以下代码:

twitter="https://twitter.com/username"

如何使用sed或awk之类的东西来删除它:

https://twitter.com/

所以我离开了:

username

4 个答案:

答案 0 :(得分:4)

只需使用bash变量扩展:

$ twitter="https://twitter.com/username"
$ echo "${twitter##*/}"
username

##从字符串的开头删除最长匹配。

答案 1 :(得分:3)

任务可以通过basename

完成
$ basename https://twitter.com/username
username

答案 2 :(得分:0)

您不需要外部程序,您可以使用#使用常规参数替换来删除前缀:

$ twitter="https://twitter.com/username"
$ echo ${twitter#https://twitter.com/}
username

答案 3 :(得分:0)

使用BASH正则表达式功能:

s="https://twitter.com/username"
[[ "$s" =~ /([^/]+)$ ]] && echo "${BASH_REMATCH[1]}"
username

对于这样一个简单的任务,可能并不总是需要正则表达式,但正则表达式的强大功能可以考虑用于更复杂的工作,例如查找最后一个字符串之间的字符串等。