Grep 输出 - 预期结果?

Grep 输出 - 预期结果?

我有以下 grep

grep "/abc/[A-Z]" file1.txt | cut -d/ f3 | sort -u

grep 完美地返回结果,

ALPHA
abc
BRAVO
CHARLIE

但是,为什么输出abc也在其中呢?我已将正则表达式设置为仅在分隔符反斜杠之后采用大写单词。这是预期的输出吗?我应该如何abc从输出中删除它?

答案1

您尚未锚定与 一起使用的正则表达式grep。这样做的结果是它可能匹配线上的任何地方。

一行说,例如,

blah/blah/abc/Abc

或者

/blah/abc/Abc

将与您的表达式匹配,并且两者都将包含字符串abc作为第三个/分隔字段。

要将表达式锚定到行的开头,请使用

^/abc/[A-Z]

或者,以其他方式强制执行更严格的匹配,或者使用最适合您的风格和应用程序的方法清除abc最后的结果。grep -v -F -x abc

相关内容