如何在bash中的两个字符之间提取字符串的一部分?

时间:2014-02-06 09:52:08

标签: regex string bash

我正在尝试使用bash提取字符串的一部分。该字符串的格式为:

peeyush (>= 5) peeyush (<= 7)

现在我想在两个变量中提取大括号中的数字。像

这样的东西
echo $var1
>=5
echo $var2
<=7

如果可以从字符串中提取min和max格式的数字,那就更好了吗?

任何指针都表示赞赏。

1 个答案:

答案 0 :(得分:1)

使用此grep:

s='peeyush (>= 5) peeyush (<= 7)'

unset var1 var2
while read -r p; do
    [[ -z "$var1" ]] && var1="$p" || var2="$p"
done < <(grep -oP '\(\K[^)]+' <<< "$s")

echo "$var1"
>= 5
echo "$var2"
<= 7