1. 简介

1.1. 功能

搜索输入文件中满足匹配指定模式的文本行,并将匹配行输出到标准输出。

1.2. 用法

grep [option…] [patterns] [file…]

1.3. 参考

  • 官方手册页面:http://www.gnu.org/software/grep/manual/grep.html
  • 帮助命令:
man grep
grep --help

2. 选项详解

2.1. 匹配控制选项

选项 描述 示例
-e expression,指定正则表达式,可重复指定 echo $'ABCD\nAbCd\nabcd'|grep -e 'ABC' -e 'abc'
-f file,从文件中读取表达式,一行为一个表达式
-i ignore,忽略大小写 echo $'ABCD\nAbCd\nabcd'|grep -i 'abc'
-v invert,反向匹配,匹配不满足表达式的行 echo $'ABCD\nAbCd\nabcd'|grep -v 'ABC'
-w word,单词匹配,匹配表达式在行中为单词的行 echo $'ABC DEF\n”DEF"\nCDEF'|grep -w 'DEF'
-x exactly,全行匹配,要求整行匹配表达式 echo $'ABC DEF\nDEF'|grep -x 'DEF'

2.2. 通用输出控制选项

选项 描述 示例
-c count,只输出匹配到的总行数 echo $'ABCD\nAbCd\nabcd'|grep -ic 'abc'
-l files-with-matches,只输出包含匹配行的文件名 grep -l 'root' /etc/passwd /etc/hosts
-L files-without-match,只输出不包含匹配行的文件名 grep -L 'root' /etc/passwd /etc/hosts
-m max-count,匹配到指定行数后停止匹配,只输出前面匹配到的行 echo $'A\nAB\nAB'|grep -m 2 'A'
-o only-matching,只输出行中的匹配部分,一行中多个匹配项会分行输出 echo $'A\nAB\nABA'|grep -o 'A'
-q quiet,屏蔽所有输出,只要匹配到了一行,立刻以0状态退出 echo 'A'|grep -q 'A';echo $?
-s slient,屏蔽错误信息 grep -s 'A' nonexistentFile

2.3. 输出前缀控制选项

选项 描述 示例
-b byteOffset,添加匹配行的字节偏移量前缀,结合-o为匹配项的字节偏移量 echo $'B\nAB\nB'|grep -b 'B'
-h hideFileName,不添加匹配行的文件名前缀 grep -h 'root' /etc/passwd /etc/hosts
-H 添加匹配行的文件名前缀,多个输入文件时为默认选项 grep -H 'root' /etc/passwd
-n number,添加行号前缀 grep -n 'root' /etc/passwd
-T table,多个前缀时,使用TAB进行对齐,前缀顺序:Hnb grep -THnb 'root' /etc/passwd
-Z zero,使用NUL字符分隔文件名,可结合-l使用 grep -Zl 'o' /etc/passwd /etc/hosts

2.4. 上下文行控制选项

选项 描述 示例
-A after,附带输出匹配行的前几行,和匹配行组合一个组 grep -A2 'root' /etc/passwd
-B before,附带输出匹配行的后几行 grep -B2 'root' /etc/passwd
-C context,附带输出匹配行的前后几行 grep -C2 'root' /etc/passwd
--group-separator 指定组的分隔符,默认为-- grep -C1 --group-separator='==SEP==' 'root' /etc/passwd
--no-group-separator 不使用组分隔符 grep -C1 --no-group-separator 'root' /etc/passwd

2.5. 文件和目录选项

选项 描述 示例
-r recursive,递归的读取目录下的所有文件 grep -r 'localhost' /etc
-R recursive,递归的读取目录下的所有文件,包括符号链接 grep -r 'localhost' /etc
--exclude 跳过匹配指定表达式的文件 grep -rl 'localhost' /etc --exclude='hosts*'
--exclude-from 从指定文件中读取要跳过的文件表达式`
--exclude-dir 跳过匹配指定表达式的目录 grep -rl 'localhost' /etc --exclude-dir='pki'

3. 正则表达式说明

grep中的正则表达式官方介绍: http://www.gnu.org/software/grep/manual/grep.html#Regular-Expressions

Shell常用命令grep用法详解相关推荐

  1. 乌班图linux命令,乌班图Ubuntu常用命令及用法详解

    1.ls 这个相当于Windows 下的dir命令,可以列出当前窗口或指定窗口下的内容. 2.rm 这个相当于Windows 下的del 和rmdir 命令,可以删除文件及文件夹. 常见用法:rm - ...

  2. linux常中的cat命令,cat命令-linux常用命令cat用法详解

    cat命令用于连接文件打印到输出设备中 cat是linux的基本文本输出命令,通常用于查看文件内容. 语法 cat (参数)(选项) -n 或 --number:由 1 开始对所有输出的行数编号. - ...

  3. linux中grep命令 菜鸟教程,linux grep正则表达式与grep用法详解

    需要大家牢记:正则表达式与通配符不一样,它们表示的含义并不相同 正则表达式只是字符串的一种描述,只有和支持正则表达式的工具相结合才能进行字符串处理.本文以grep为例来讲解正则表达式. grep命令 ...

  4. Linux系统常用命令及其使用详解大全

    Linux系统常用命令及其使用详解大全 整理了linux常用的命令,最长常用的也就几十个,cd,ls ,vi等等,有些容易忘记,经常拿出来看看. 其他的可以推荐一个网站,https://www.lin ...

  5. docker实践(2)常用命令和DockerFile详解

    <docker实践(1) 入门和springBoot实践部署> <docker实践(2)常用命令和DockerFile详解> <docker实践(3) 仓库registr ...

  6. linux管道命令详解,Linux系统中的管道命令的用法详解

    Linux系统中管道命令是linux系统的一个强大之处.下面由学习啦小编为大家整理了Linux系统中的管道命令的用法详解的相关知识,希望对大家有帮助! Linux系统中的管道命令的用法详解 管道命令操 ...

  7. linux只输入wc命令,Linux系统中wc命令的用法详解

    在Linux系统中,wc命令不太经常用到,只是在统计字数的时候才会使用该命令,那么下面由学习啦小编为大家整理了linux系统中wc命令的详细解释的相关知识,希望对大家有帮助! Linux系统中wc命令 ...

  8. linux 移动剪切命令,Linux中vi的复制命令的用法详解

    在Linux系统中,使用VI编辑的时候经常用到的操作就是复制粘贴,那么下面由学习啦小编为大家整理了linux中vi的复制命令的用法详解的相关知识,希望对大家有帮助! Linux中vi的复制命令的用法详 ...

  9. 给mysql 授权 命令_mysql中授权命令grant用法详解:

    mysql中授权命令grant用法详解: mysql中可以给你一个用户授予如select,insert,update,delete等其中的一个或者多个权限,主要使用grant命令,用法格式为: gra ...

最新文章

  1. Spring集成TestNg测试
  2. java 程序片段_20个非常有用的Java程序片段
  3. 使用TortoiseSVN新建及合并分支图文教程
  4. 基于hi-nginx的web开发(python篇)——cookie和会话管理
  5. 关于 动态分流系统 ABTestingGateway 的想法
  6. linux+多路复用socket,socket的select_多路复用
  7. Postman都脱单了,我决定用他女朋友Postwoman了
  8. java检索账号和密码_如何从数据库中检索密码
  9. java2实用教程第六版习题答案
  10. Mifare经典工具如何使用(下)-- 手把手教你使用MCT
  11. 急需能临时发邮件的临时邮箱 临时邮箱怎么注册 邮箱163注册入口在哪
  12. AdGuard Home 使用设置以及DNS测速软件
  13. 详谈APP移动端 - 加壳与脱壳
  14. 微信小程序中如何有效的修改app.js中全局变量的值,并能在页面中进行动态响应
  15. 17个支持图片外链的免费相册
  16. Linux mail 配置
  17. 神经网络学习——第一个代码学习
  18. OpenGL和DirectX
  19. 经典布局(flex和传统两种实现)—左中右三栏式
  20. mac本地安装PHP redis扩展

热门文章

  1. Android短视频系统源码功能测试(个人总结完整版)
  2. Java中的微信支付: 微信API-V3签名生成工具类
  3. php中的分割函数,php分割字符串方法,php分隔字符函数
  4. 虚拟主机如何连接服务器的,虚拟主机需要怎么连接服务器
  5. ios dat 文件读写_Xilisoft iPad Magic Platinum for Mac(ios设备文件传输和转换工具)_资源共享论坛...
  6. 鸿蒙3.0系统下载,华为鸿蒙OS3.0系统下载
  7. 基于FastestDet目标检测模型实现火点烟雾检测
  8. Hardware Composer
  9. 2021 IEEE编程语言排行榜:Python排名榜首!
  10. 凡是过去,皆为序章--2021年区块链安全事件年度总结