17

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

9606    ENSP00000239223 DUSP1   BLAST
9606    ENSP00000239223 DUSP1-001 Ensembl

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

我尝试了几个命令:

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

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

4

3 回答 3

32

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

grep '\bDUSP1\b'

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

于 2015-05-05T10:33:49.437 回答
19

您面临的问题是破折号(-) 被视为grep单词分隔符。

你应该试试这个命令:

grep '\sDUSP1\s' file

以确保您的单词周围有空格。
或使用单词边界

grep '\bDUSP1\b' file
于 2013-07-12T13:29:42.907 回答
2

除了 sputpick 所说的,它可能是那个或者:

grep '\sDUSP1$' file 

如果 DUSP1 是行尾。

于 2014-11-03T17:50:31.897 回答