grep 模式 ^$ 和 ^ 之间的区别

grep 模式 ^$ 和 ^ 之间的区别

我知道 grep 匹配模式的所有空白行^$。但只是意味着什么^?当我给出 时grep '^' filename,它匹配所有行。

grep '' filename匹配了所有的行。

答案1

手册grep页解释了这两个符号:

锚定
插入符号^和美元符号$是元字符,分别与行首和行尾的空字符串匹配。

搜索^仅匹配行的开头,每行都有,因此它们都匹配。搜索空字符串根本没有任何限制,因此它也匹配所有行。搜索的^$意思是“先匹配行首,后跟行尾”,即空行。您还可以将它们用于查找以foo( ) 开头的所有行或以( )^foo结尾的所有行等情况barbar$

答案2

^表示一行的开头。

^$是说一行的开头,一行的结尾$,中间没有任何内容。

使用此正则表达式,您可以找到空白行并删除/排除空白行

例如。

grep -Ev '^$|^#'  /etc/sudoers

它将排除空白行和以哈希 ( # ) 开头的行

相关内容