2017-02-17 9 views
1

コロン区切りリストからバージョンを抽出しようとしています。私が欲しい値は、しかし、両方の値を返すために原因FOO-バーと呼ばれるリスト内の別の値がある、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は(これが期待されている)空でバージョンを生じるはずである以下のようになります。

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

'grep -P" \ bfoo \ b(?! - ) "'を試してみてください –

答えて

1

あなたは-Pオプションで有効PCRE正規表現を使用し、全体の単語foo-がある場合には試合を失敗します(?!-)否定先読みを使用することがあります。

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

online demo

を参照してください。
関連する問題