我如何在bash脚本中获取两个字符之间的字符串?

时间:2014-01-23 12:48:04

标签: bash

我想在bash脚本中获取一个介于两个字符之间的字符串。例如; AAA_Ubuntu-bbb,在这个字符串中我想得到" Ubuntu"作为字符串。我是怎么做到的?

2 个答案:

答案 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