grep 后面没有点的模式

grep 后面没有点的模式

文件a包含,

abcd
abcd. defgh
defghabcd.
defgh. abcd
abcd .defgh

abcd如何打印所有具有不带点后缀的图案的行?

必须打印,

abcd
defgh. abcd
abcd .defgh #. after any other character is good to go

我试过了grep 'abcd^[\.]' a,没用。

答案1

^在括号外使用[...]意味着行首。当括号内的点转义时,你会犯错误,[^\.]意味着除了反斜杠\和点之外的任何东西.,而不仅仅是点.

abcd[^.]另一个不匹配的注释A B C D在该行的末尾。

所以你需要:

$ grep -E 'abcd([^.]|$)' <file
abcd
defgh. abcd
abcd .defgh

相关内容