我想用grep了比賽的確切發生的一個文件,但我得到的也更長虛假匹配:只得到grep的精確匹配
grep CAT1717O99 myfile.txt -F -w
輸出:
CAT1717O99
CAT1717O99.5
我想只輸出第一恰好匹配線。有什麼辦法擺脫第二線? 在此先感謝。 阿圖羅
這是文件 'myfile.txt的':
CAT1717O99
CAT1717O99.5
我想用grep了比賽的確切發生的一個文件,但我得到的也更長虛假匹配:只得到grep的精確匹配
grep CAT1717O99 myfile.txt -F -w
輸出:
CAT1717O99
CAT1717O99.5
我想只輸出第一恰好匹配線。有什麼辦法擺脫第二線? 在此先感謝。 阿圖羅
這是文件 'myfile.txt的':
CAT1717O99
CAT1717O99.5
使用Perl兼容的正則表達式的功率(PCRE)和查詢的匹配到給定的圖案:
grep -Po "\bCAT1717O99(\s|$)" myfile.txt
(\s|$)
- 替代烷基,可確保如果它隨後由空格或放置在升的端部匹配的子串CAT1717O99
INE
-P
選項,允許正則表達式
-o
選項,只打印匹配匹配行
的部分,你需要明確要求的空間,以忽略特殊字符。
grep -E '(^|)CAT1717O99(|$)' myFile.txt
從grep的手冊:
-w,--word-regexp的 僅選擇那些含有形成完整的詞的匹配線。測試是匹配子字符串必須位於行首,或者以非單詞組成字符開頭。同樣,它必須位於行尾,或者後面跟着一個非單詞組成字符。單詞組成字符是字母,數字和下劃線。
可以顯示'myfile.txt'的片段? – RomanPerekhrest