如何在grep中处理“ - ”?

时间:2017-09-28 15:56:21

标签: unix grep

有几次被问过,但我还不清楚。

我在文件中有以下文本(data.txt,tab delimeted):

ABC    12
ABC-AS    14
DEF    18
DEF-AS    9

现在我想搜索ABC和DEF,但不会搜索ABC-AS,DEF-AS。

grep -w ABC data.txt

输出:

grep -w ABC data.txt
ABC
ABC-AS


grep --no-group-separator -w "ABC" data.txt      
ABC
ABC-AS

grep --group-separator="\t" -w "ABC" data.txt
ABC
ABC-AS

2 个答案:

答案 0 :(得分:1)

试试这个,只选择那些与整行完全匹配的匹配

grep --line-regexp "ABC" data.txt

答案 1 :(得分:1)

使用正则表达式

grep -E "(ABC|DEF)[^\-]" data.txt

<强>详情

(ABC|DEF):匹配&#34; ABC&#34;或&#34; DEF&#34;

[^\-]:除了&#34; - &#34;

之外的任何事情

<强>输出

ABC    12
DEF    18