grep 排除空行

2023年 7月 20日 50.7k 0

grep命令的全称是全局正则表达式打印,它是Linux中功能最强大且最常用的命令之一。

grep在一个或多个输入文件中搜索与指定模式匹配的行,并将匹配行写入标准输出。如果未指定文件,grep则从标准输入读取内容。

在本教程中,我们将向您展示如何使用grep对标准输出进行过滤,排除 。这其中包括排除不匹配的行,排除目录和文件等。

grep 排除空行

GNUgrep支持三种正则表达式语法,Basic、Extended和Perl-compatible。默认情况下,grep将模式解释为Basic正则表达式。

要使用grep排除空行很简单,首先我使用^符号匹配行首,$符号匹配行尾。将^$组合起就是空行。

然后仅打印与搜索模式不匹配的行,使用grep命令的-v--invert-match选项进行反转的匹配。

grep -vE ^$ file

grep 反转匹配

要仅打印与搜索模式不匹配的行,可以使用grep命令的-v--invert-match选项进行反转的匹配。

注意grep会区分大小写。这意味着大写和小写被视为不同的字符。要在搜索时忽略大小写,使用-i选项调用grep

如果搜索字符串包含空格,只需要将其括在单引号或双引号中。grep就会搜索空格,你也可以使用正则表达式表示空格的匹配。

例如命令ps aux | grep fnord | grep -v grep 在搜索进程的时候排除自身的进程。

ps aux | grep fnord | grep -v grep

正则表达式基础

GNUgrep支持三种正则表达式语法,Basic、Extended和Perl-compatible。默认情况下,grep将模式解释为Basic正则表达式。

当你在正则表达式中使用使用OR运算符|时,必须使用反斜杠\进行转义。因为shell会将|解释Linux管道。

如果你使用的扩展正则表达式,则|不不需要转义,即不需要反斜杠\-E选项指示grep命令使用扩展正则表达式。

^符号匹配行首,$符号匹配行尾,. 符号以匹配任意单个字符,[ ]中括号匹配指定范围的字符,[^ ]以匹配非中括号内的任意字符。

例如命令grep -Ewv 'nologin|bash' /etc/passwdgrep -wv 'nologin\|bash' /etc/passwd是等效的,前者使用的是扩展表达式,后者使用基本正则表达式。

grep -Ewv 'nologin|bash' /etc/passwd

grep -wv 'nologin\|bash' /etc/passwd

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论