grep常见参数及应用举例

grep,是一种强大的文本搜索工具,英文全称为(global search regular expression(RE) and print out the line),意为全面搜索正则表达式并把行打印出来。它能使用正则表达式搜索文本,并把匹配的行打印出来。

【选项】

  -c 计算找到"搜索字符串"的次数
  -o 仅显示出匹配regexp的内容(用于统计出现在文中的次数)
  -i 忽略大小写
  -n 在行首显示行号
  -v 反向选择,即显示不包含"搜索字符串"内容的那一行
  -E 扩展的grep,即egrep
  --color=auto 以特定颜色高亮显示匹配出的关键的
  -A after的意思,显示出匹配字符串机器后n行的数据
  -B before的意思,显示匹配字符串及其前n行的数据
  -C 显示匹配字符串机器前后各n行
  -r 递归搜索
  -e 制动多个匹配样式
  -q 不显示任何信息。
  -w 只显示全字符合的列。

【file文件内容】

[[email protected] test]# cat file 
1
2 The world is not you can do, but you should.
3 Life is not easy for any of us.
4 We must work hard.12345678
5 we hope that we can see you soon
6

【常见用法举例】

1.排除指定内容

[[email protected] test]# grep -v We file 
1
2 The world is not you can do, but you should.
3 Life is not easy for any of us.
5 we hope that we can see you soon
6

2.统计We出现的次数

[[email protected] test]# grep -c We file 
1

3.统计单词"we"出现的次数,不区分大小写

[[email protected] test]# grep -ci We file 
2

4.仅输出匹配到的内容

[[email protected] test]# grep -oi life file
Life

5.在行首显示行号

[[email protected] test]# grep -ni life file
3:3 Life is not easy for any of us.

6.使用正则表达式-E选项

[[email protected] test]# grep -E "[1-9]+" file         
1
2 The world is not you can do, but you should.
3 Life is not easy for any of us.
4 We must work hard.12345678
5 we hope that we can see you soon
6

7.匹配多个样式

法一:利用egrep

[[email protected] test]# egrep -i --color=auto "we|life" file
  3 Life is not easy for any of us.
  4 We must work hard.12345678
  5 we hope that we can see you soon

法二:利用-e选项

[[email protected] test]# grep -ie "we" -ie "life" file  
  3 Life is not easy for any of us.
  4 We must work hard.12345678
  5 we hope that we can see you soon

8.-q静默输出

  [[email protected] test]# grep -q we file ;echo $?  
  0
  #不会输出任何信息,如果命令运行成功返回0,失败则返回非0值。一般用于条件测试。

9.打印出匹配文本之前或者之后的行

1)显示匹配某个结果之后的3行,使用 -A 选项

[[email protected] test]# grep "3" -A 3 file
  3 Life is not easy for any of us.
  4 We must work hard.12345678
  5 we hope that we can see you soon
  6

2)显示匹配某个结果之前的3行,使用 -B选项

[[email protected] test]# grep "5" -B 3 file
  1
  2 The world is not you can do, but you should.
  3 Life is not easy for any of us.
  4 We must work hard.12345678
  5 we hope that we can see you soon

可以看到,输出中多了第一行,可使用-w选项精确匹配字符,只输出第五行及其前三行,即2-5行。

[[email protected] test]# grep -w "5" -B 3 file    
  2 The world is not you can do, but you should.
  3 Life is not easy for any of us.
  4 We must work hard.12345678
  5 we hope that we can see you soon

3)显示匹配某个结果的前三行和后三行,使用 -C 选项

[[email protected] test]# grep -w "4" -C 2 file
  2 The world is not you can do, but you should.
  3 Life is not easy for any of us.
  4 We must work hard.12345678
  5 we hope that we can see you soon
  6

时间: 2024-08-27 04:09:00

grep常见参数及应用举例的相关文章

常见的JQuery应用举例

在学习JS之后,JQuery(以下简称JQ)为我们提供了一种更加便捷和简单的操作模式,利用它开发人员将更为高效的进行工作,下面将一些常见的问题进行举例. 1.点击某处弹出提醒,例如某些游戏在注册时会弹出"过渡游戏有害健康"的提示语,利用JQuery可以解决这一问题. 首先运行效果如下,鼠标点击勾选框时弹出"适度游戏的提示框". 要解决这个问题,其实H5的hover事件和JS都可以解决,但是利用JQ代码更加方便快捷,主要是鼠标事件的应用:mouseover和mouse

Rsync使用中常见参数的说明

5.Rsync使用中常见参数的说明.md 常见参数说明 motd file:定义当客户端访问时看到的信息,默认为空. pid fle:定义rsync daemon将其PID写入的文件,如果此文件存在rsync,daemon会终止而不是覆盖. port:定义daemon监听的端口,默认为873. address:覆盖daemon默认监听的IP地址.如果daemon是被inetd启动,并且有 --address参数时,会被忽略. socket options:用来防止被人不停的连接.可以设置为所有s

垃圾收集器与内存分配策略(五)之垃圾日志与常见参数

垃圾收集器与内存分配策略(五)--垃圾日志与常见参数 理解GC日志 每个收集器的日志格式都可以不一样,但各个每个收集器的日志都维持一定的共性.如下面二段日志: 33.125: [GC [DefNew: 3324K->152K(3712K), 0.0025925 secs] 3324K->152K(11904K), 0.0031680 secs] 100.667: [Full GC [Tenured: 0K->210K(10240K), 0.0149142 secs] 4603K->

SQl注入常见参数

SQL注入常见参数 user():                数据库用户,格式为user() @server database():        当前数据库名称. version():            当前数据版本,例如5.x.x-n1等......... @@datadir:       数据库路径.通常用于load_file时猜测网站路径等.例如:c:\xxxx\xxxxx\xxxx\data\ concat():             联合数据.联合数据与union不同,un

性能测试三十六:内存溢出和jvm常见参数

堆内存溢出: 此种溢出,加内存只能缓解问题,不能根除问题,需优化代码堆内存中存在大量对象,这些对象都有被引用,当所有对象占用空间达到堆内存的最大值,就会出现内存溢出OutOfMemory:Java heap space 永久代溢出 如果发生,则是在初始化的时候,空间太小,解决办法,扩大空间类的一些信息,如类名.访问修饰符.字段描述.方法描述等,所占空间大于永久代最大值,就会出现OutOfMemoryError:PermGen space 内存溢出的检测方法:pid=1730 Jdk/bin目录下

性能测试三十六:内存溢出和JVM常见参数及JVM参数调优

堆内存溢出: 此种溢出,加内存只能缓解问题,不能根除问题,需优化代码堆内存中存在大量对象,这些对象都有被引用,当所有对象占用空间达到堆内存的最大值,就会出现内存溢出OutOfMemory:Java heap space 永久代溢出 如果发生,则是在初始化的时候,空间太小,解决办法,扩大空间类的一些信息,如类名.访问修饰符.字段描述.方法描述等,所占空间大于永久代最大值,就会出现OutOfMemoryError:PermGen space 内存溢出的检测方法:pid=1730 Jdk/bin目录下

Shell – Grep 常见用法

是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. 我经常用来查找字符串比如: grep -rn "字符串" . 递归查找当前目录下所有文件中 "字符串" 并且所在标出所在行. 下面来看看具体参数: grep [-acinv] [--color=auto] '搜寻字符串' filename 选项参数: -a :将 binary 档案以 text 档案方式搜寻数据 -c :计算找刡 '搜寻字符串' 次数 -i :忽略大小写 -n :输出行号

Http协议的常见参数

Requests部分 Header 解释 示例 Accept 指定客户端能够接收的内容类型 Accept: text/plain, text/html Accept-Charset 浏览器可以接受的字符编码集. Accept-Charset: iso-8859-5 Accept-Encoding 指定浏览器可以支持的web服务器返回内容压缩编码类型. Accept-Encoding: compress, gzip Accept-Language 浏览器可接受的语言 Accept-Language

LCD屏参数及应用举例

 1.  LCD参数及原理 R G B 信号 PCLK(像素时钟),LCLK(HSYNC,线时钟,水平同步时钟),FCLK(VSYNC,帧时钟,垂直同步时钟) 7寸屏一般由两种工作模式DE和时钟模式,一般都采用时钟模式.4.3寸以下(包含3.5寸屏)与7寸屏不同,需要通过SPI接口初始化. 时序(800*480):帧同步用FCLK(VSYNC),一帧数据即一个画面: 行同步用LCLK(HSYNC),一帧数据包含480个行同步信号: 像素时钟用于采集1组RGB数据,一行数据有像素时钟800个(至少