如果我有以下代码:
twitter="https://twitter.com/username"
如何使用sed或awk之类的东西来删除它:
https://twitter.com/
所以我离开了:
username
答案 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
对于这样一个简单的任务,可能并不总是需要正则表达式,但正则表达式的强大功能可以考虑用于更复杂的工作,例如查找最后一个字符串之间的字符串等。