2014-02-06 86 views
1

我想使用bash提取一部分字符串。该字符串的格式如下:如何提取bash中两个字符之间的一部分字符串?

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

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

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

或者甚至更好,如果有可能从字符串中提取最小和最大格式的数字?

任何指针表示赞赏。

回答

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 
+0

我猜OP也希望'> ='一部分。 – fedorqui

+0

啊谢谢,让我纠正 – anubhava

+0

谢谢,作品像一个魅力。虽然我有疑问,但其中一些数字并不完全是单数字格式。其实这些都是版本号,有些像1.4.7或1.16,我应该如何修改正则表达式来区分它们? – Pensu

相关问题