前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux中grep如何排除过滤输出总结

linux中grep如何排除过滤输出总结

作者头像
入门笔记
发布2022-06-02 16:07:18
2.2K0
发布2022-06-02 16:07:18
举报
文章被收录于专栏:入门小站

grep 是一种强大的命令行工具,用于在一个或多个输入文件中搜索与正则表达式匹配的行并将每个匹配的行写入标准输出。

排除单词和模式

要仅显示与搜索模式不匹配的行,请使用-v( 或--invert-match) 选项。

例如,要打印不包含nologin行:

代码语言:javascript
复制
> grep -wv nologin /etc/passwd
root:x:0:0:root:/root:/bin/bash
git:x:994:994:git daemon user:/:/usr/bin/git-shell
myfreax:x:1000:1000:myfreax:/home/myfreax:/bin/bash

-w选项告诉grep仅返回指定字符串是整个单词(由非单词字符括起来)的那些行。

默认情况下,grep区分大小写。这意味着大写和小写被视为不同的字符。要在搜索时忽略大小写,请grep使用该-i选项进行调用。

如果搜索字符串包含空格,则需要将其括在单引号或双引号中。

要指定两个或多个搜索模式,请使用以下-e选项:

代码语言:javascript
复制
> grep -wv -e nologin -e bash /etc/passwd

你可以-e根据需要多次使用该选项。

排除多个搜索模式的另一个选项是使用 OR 运算符| 连接模式。

以下示例打印不包含字符串nologinbash 的行:

代码语言:javascript
复制
> grep -wv 'nologin\|bash' /etc/passwd

GNUgrep支持三种正则表达式语法,Basic、Extended 和 Perl-compatible。默认情况下,grep将模式解释为基本正则表达式,其中元字符(例如)|失去其特殊含义,你必须使用它们的反斜杠版本。

如果要使用选项-E扩展正则表达式,则|不应转义运算符,如下所示:

代码语言:javascript
复制
> grep -Ewv 'nologin|bash' /etc/passwd

你可以指定不同的可能匹配项,这些匹配项可以是文字字符串或表达式集。在以下示例中,字符串games出现在行首的行被排除在外:

代码语言:javascript
复制
> grep -v "^games" file.txt

命令的输出可以grep通过管道过滤,只有匹配给定模式的行才会打印在终端上。

例如,要打印出系统上所有正在运行的进程,除了以用户root身份运行的进程,你可以过滤ps 命令的输出:

代码语言:javascript
复制
> ps -ef | grep -wv root

排除目录和文件

有时,当使用-r-R选项执行递归搜索时,你可能希望从搜索结果中排除特定目录。

-r-R选项之间的主要区别在于,当使用大写字母R调用 grep时,它将遵循所有符号链接

要从搜索中排除目录,请使用--exclude-dir选项。排除目录的路径是相对于搜索目录的。

这是一个示例,显示如何myfreax在内的所有文件中搜索字符串/etc,不包括/etc/pki目录:

代码语言:javascript
复制
> grep -R --exclude-dir=pki myfreax /etc

要排除多个目录,请将排除的目录括在大括号中,并用逗号分隔,不要有空格。

例如,要查找包含字符串GNU在你的Linux系统排除的文件procbootsys你要运行的目录:

代码语言:javascript
复制
> grep -r --exclude-dir={proc,boot,sys} gnu /

使用通配符匹配时,你可以排除基本名称与--exclude选项中指定的 GLOB 匹配的文件。

在下面的示例中,我们在当前工作目录中的所有文件中搜索字符串rumenz,不包括以.pngand.jpg目录结尾的文件:

代码语言:javascript
复制
> grep -rl --exclude=*.{png,jpg} rumenz *

相关文章

linux之grep使用技巧

linux中grep命令的12个实际例子

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 入门小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 排除单词和模式
  • 排除目录和文件
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档