2014-02-06 138 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

相關問題