shell编程系列(11)-使用grep查找文本

文章目录

  • 前言
  • 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 文件作为测试文件,内容如下:
shell编程系列(11)-使用grep查找文本_第1张图片
首先我们查找带有关键字’an’ 的行,

grep an fruit.txt

查询结果可以看出搜到了关键字an的行
在这里插入图片描述

反向查找

如果我们想排除某些关键字的行,示例如下:

# 我们排除带an的行
grep -v an fruit.txt

结果如下:
shell编程系列(11)-使用grep查找文本_第2张图片

结语

目前先介绍两种最常用的用法,后续会持续更新,敬请期待~

你可能感兴趣的:(shell编程,linux,shell编程,linux)