文件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