2017-02-25 97 views
0

我想用grep了比賽的確切發生的一個文件,但我得到的也更長虛假匹配:只得到grep的精確匹配

grep CAT1717O99 myfile.txt -F -w 

輸出:

CAT1717O99 

CAT1717O99.5 

我想只輸出第一恰好匹配線。有什麼辦法擺脫第二線? 在此先感謝。 阿圖羅

這是文件 'myfile.txt的':

CAT1717O99 

CAT1717O99.5 
+0

可以顯示'myfile.txt'的片段? – RomanPerekhrest

回答

0

這將做的工作適合你。

grep -Fx "CAT1717O99" textfile 

-F固定 -x意味着精確

+0

謝謝,但不起作用。我仍然得到虛假的匹配線。 – Arturo

+0

謝謝。那就是訣竅。 – Arturo

+0

如果它爲你做的工作爲例外,則笑納了答案,幫助同胞,因此用戶。 –

1

使用Perl兼容的正則表達式的功率PCRE)和查詢的匹配到給定的圖案:

grep -Po "\bCAT1717O99(\s|$)" myfile.txt 

(\s|$) - 替代烷基,可確保如果它隨後由空格或放置在升的端部匹配的子串CAT1717O99 INE

-P選項,允許正則表達式

-o選項,只打印匹配匹配行

0

的部分,你需要明確要求的空間,以忽略特殊字符。

grep -E '(^|)CAT1717O99(|$)' myFile.txt 

從grep的手冊:

-w,--word-regexp的 僅選擇那些含有形成完整的詞的匹配線。測試是匹配子字符串必須位於行首,或者以非單詞組成字符開頭。同樣,它必須位於行尾,或者後面跟着一個非單詞組成字符。單詞組成字符是字母,數字和下劃線。