我想在bash脚本中获取一个介于两个字符之间的字符串。例如; AAA_Ubuntu-bbb,在这个字符串中我想得到" Ubuntu"作为字符串。我是怎么做到的?
答案 0 :(得分:1)
var=AAA_Ubuntu-bbb
string=${var#*_} # remove before _
string=${string%%-*} # remove after -
echo "$string"
有关这些运算符的说明,请参阅参数扩展上bash
手册页的部分。
答案 1 :(得分:0)
假设您想要的字符串部分包含在_
和-
之间且不包含此类字符,cut
提供了一个简单的解决方案。定义这样的函数:
function extractName {
cut -d _ -f 2 <<< "$1" | cut -d - -f 1
}
并在您的代码中使用它,如:
name=$(extractName "AAA_Ubuntu-bbb")
echo $name