我知道 grep 匹配模式的所有空白行^$
。但只是意味着什么^
?当我给出 时grep '^' filename
,它匹配所有行。
也grep '' filename
匹配了所有的行。
答案1
手册grep
页解释了这两个符号:
锚定
插入符号^
和美元符号$
是元字符,分别与行首和行尾的空字符串匹配。
搜索^
仅匹配行的开头,每行都有,因此它们都匹配。搜索空字符串根本没有任何限制,因此它也匹配所有行。搜索的^$
意思是“先匹配行首,后跟行尾”,即空行。您还可以将它们用于查找以foo
( ) 开头的所有行或以( )^foo
结尾的所有行等情况bar
bar$
答案2
^
表示一行的开头。
^$
是说一行的开头,一行的结尾$
,中间没有任何内容。
使用此正则表达式,您可以找到空白行并删除/排除空白行
例如。
grep -Ev '^$|^#' /etc/sudoers
它将排除空白行和以哈希 ( # ) 开头的行