Unix 如何处理-&引用;在grep?

Unix 如何处理-&引用;在grep?,unix,grep,Unix,Grep,它被问了好几次,但我还不清楚 我在一个文件中有以下文本(data.txt,tab delimetered): 现在我想搜索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" d

它被问了好几次,但我还不清楚

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

现在我想搜索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

尝试此操作,仅选择与整行完全匹配的匹配项

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

尝试此操作,仅选择与整行完全匹配的匹配项

grep --line-regexp "ABC" data.txt
用正则表达式

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

(ABC|DEF)
:匹配“ABC”或“DEF”

[^\-]
:除“-”以外的任何内容

输出

ABC    12
DEF    18
用正则表达式

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

(ABC|DEF)
:匹配“ABC”或“DEF”

[^\-]
:除“-”以外的任何内容

输出

ABC    12
DEF    18

如果您的
grep
版本有可用的Perl正则表达式,则可以使用负前瞻。您可以查找
ABC
,然后发布过滤器
grep-v'ABC-[A-Z]
或其他类似内容。根据修改后的说明,您可以使用
grep'^ABC[[:space:]]
查找以
ABC
开头而非
ABC-AS
的行吗?或者
grep-E'^(ABC | DEF)[空格:]'
如果您也想
DEF
的话。或者
grep“ABC\s”data.txt
。对于多个模式:
grep-e“ABC\s”-e“DEF\s”data.txt
如果您的
grep
版本有可用的Perl正则表达式,则可以使用负前瞻。您可以查找
ABC
,然后发布过滤器
grep-v'ABC-[A-Z]
或其他类似内容。根据修改后的说明,您可以使用
grep'^ABC[[:space:]]
查找以
ABC
开头而非
ABC-AS
的行吗?或者
grep-E'^(ABC | DEF)[空格:]'
如果您也想
DEF
的话。或者
grep“ABC\s”data.txt
。对于多个模式:
grep-e“ABC\s”-e“DEF\s”data.txt
对不起。该文件包含其他列。我更新了查询以反映确切的情况。在这种情况下,请尝试以下操作:
grep“ABC[[:blank:][]”\data.txt
对不起。该文件包含其他列。我更新了查询以反映确切的情况。在这种情况下,请尝试以下操作:
grep“ABC[[:blank:][]”\data.txt