我想用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