使用grep仅提取整个单词

时间:2013-07-12 13:27:07

标签: regex grep match exact-match

我有一个大文本文件。我需要提取包含确切单词“DUSP1”的所有行。 这是一个行的例子:

9606    ENSP00000239223 DUSP1   BLAST
9606    ENSP00000239223 DUSP1-001 Ensembl

我想要检索第一行而不是第二行。

我尝试了几个命令:

grep -E "^DUSP1"
grep '\<DUSP1\>'
grep '^DUSP1$'
grep -w DUSP1

但它们似乎都不起作用。我应该使用哪个选项?

3 个答案:

答案 0 :(得分:31)

如果你想要准确地对整个单词进行grep,你可以使用这样的单词边界:

grep '\bDUSP1\b'

这匹配开头和结尾的确切单词。

答案 1 :(得分:14)

您面临的问题是{{1>}将破折号( - )视为单词分隔符。

你应该尝试这个命令:

grep

确保你的单词周围有空格。

答案 2 :(得分:1)

添加到sputpick所说的内容,它可能是那个或:

grep '\sDUSP1$' file 

如果DUSP1是该行的末尾。