文章目录
- 前言
- grep的使用
- 根据关键字查找
- 反向查找
- 结语
前言
grep
命令也是我们在日常使用linux,编写shell脚本中会用到的一个高频命令,grep
主要是帮助我们查找我们想要的内容,类似于我们在office word里面的 Ctrl + f 查找功能,但是因为grep
命令支持正则表达式,所以grep
可比word的查找功能更加强大 ,接下来就一起看一下grep
命令的详细用法吧。
grep的使用
grep
的用法如下:
# option 选项可以控制grep的行为
# pattern 表示匹配模式,支持正则
# file 是待查询的文件
grep [option] pattern [file]
option常用选项如下:
常用选项 | 说明 |
---|---|
-c | 只打印匹配的文本行的行数,不显示匹配的内容 |
-i | 匹配时忽略字母的大小写 |
-h | 当搜索多个文件时,不显示匹配文件名前缀 |
-l | 只列出含有匹配的文本行的文件的文件名,而不显示具体的匹配的内容 |
-n | 列出所有的匹配的文本行,并显示行号 |
-s | 不显示关于不存在或者无法读取文件的错误信息 |
-v | 只显示不匹配的文本行 |
-w | 匹配整个单词 |
-x | 匹配整个文本行 |
-r | 递归搜索,不仅搜索当前目录,还要搜索其各级子目录 |
-q | 禁止输出任何匹配结果,而是以退出状态码的形式表示搜索是否成功,其中0表示找到了匹配的文本行 |
-b | 打印匹配的文本行到文件头的偏移量,以字节为单位 |
-E | 支持扩展正则表达式 |
-P | 支持Perl正则表达式 |
-F | 不支持正则表达式,将模式按字面意义匹配 |
-C | 打印匹配到的前后n行 |
-B | 打印匹配到的前n行 |
-B | 打印匹配到的后n行 |
根据关键字查找
最简单的用法就是我们在文件中根据关键字查询,示例如下:
我们先准备fruit.txt 文件作为测试文件,内容如下:
首先我们查找带有关键字’an’ 的行,
grep an fruit.txt
查询结果可以看出搜到了关键字an的行
反向查找
如果我们想排除某些关键字的行,示例如下:
# 我们排除带an的行
grep -v an fruit.txt
结果如下:
结语
目前先介绍两种最常用的用法,后续会持续更新,敬请期待~