2017-02-17 112 views
1

我想從冒號分隔列表中提取版本。我想要的值是,但是有一個名爲foo的酒吧導致這兩個值返回列表中的其他值。這是我在做什麼:grep完全匹配冒號分隔字符串

LIST="foo:1.0.0 
foo-bar:1.0.1" 

VERSION=$(echo "${LIST}" | grep "\bfoo\b" | cut -s -d':' -f2) 

echo -e "VERSION: ${VERSION}" 

輸出:

VERSION: 1.0.0 
1.0.1  

注:有時候列表將如下所示,這將導致版本是空的(這是預期)。

LIST="foo 
foo-bar:1.0.1" 
+0

嘗試'grep -P「\ bfoo \ b(?! - )」' –

回答

1

您可以使用與-P選項啓用PCRE正則表達式,並使用(?!-)負前瞻將在情況下失敗的比賽有一個完整的單詞foo-

grep -P "\bfoo\b(?!-)" 

online demo

相關問題