grep/egrep

简介:

   在开发脚本的时候,我们总会发现需要调用的某些字符串时有规律的。通过筛选、提取和调用这些有规律的字符串,完善脚本的处理流程。正则就是这么一串有规律的字符串。在各种编程语言中都有正则,原理基本一致。在linux学习中,掌握好正则对于编写shell脚本能打下深厚根基。

    grep/egrep是shell脚本中常用的筛选命令之一。通过该命令配合正则表达式能够有效快速的筛选出需要的文本内容。


▎grep命令的基本用法:grep [-cinvrABC] 'word' filename

参  数 作  用
-c 统计匹配的行数
-i 不区分大小写
-n 显示行号
-v 取反
-r 遍历所有子目录
-A 后面跟数字,过滤出符合要求的行以及下面的n行
-B 后面跟数字,过滤出符合要求的行以及上面的n行
-C 后面跟数字,过滤出符合要求的行以及上下各n行

测试示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
[root@server01 test1] # grep -c sbin 1.txt
11
[root@server01 test1] # grep -i root 1.txt
root:x:0:0:root: /Root : /bin/bash
operator:x:11:0:operator: /Root : /sbin/nologin
[root@server01 test1] # grep -ni root 1.txt
1:root:x:0:0:root: /Root : /bin/bash
10:operator:x:11:0:operator: /Root : /sbin/nologin
[root@server01 test1] # grep -niv root 1.txt
2:bin:x:1:1:bin: /bin : /sbin/nologin
3:daemon:x:2:2:daemon: /sbin : /sbin/nologin
4:adm:x:3:4:adm: /var/adm : /sbin/nologin
5:lp:x:4:7:lp: /var/spool/lpd : /sbin/nologin
6: sync :x:5:0: sync : /sbin : /bin/sync
7: shutdown :x:6:0: shutdown : /sbin : /sbin/shutdown
8:halt:x:7:0:halt: /sbin : /sbin/halt
9:mail:x:8:12:mail: /var/spool/mail : /sbin/nologin
11:operator:x:11:0:operoator: /rt : /sbin/nologin
12:operator:x:11:0:operoooooator: /rt : /sbin/nologin
[root@server01 test1] # grep -niA2 root 1.txt
1:root:x:0:0:root: /Root : /bin/bash
2-bin:x:1:1:bin: /bin : /sbin/nologin
3-daemon:x:2:2:daemon: /sbin : /sbin/nologin
--
10:operator:x:11:0:operator: /Root : /sbin/nologin
11-operator:x:11:0:operoator: /rt : /sbin/nologin
12-operator:x:11:0:operoooooator: /rt : /sbin/nologin
[root@server01 test1] # grep -niB2 root 1.txt
1:root:x:0:0:root: /Root : /bin/bash
--
8-halt:x:7:0:halt: /sbin : /sbin/halt
9-mail:x:8:12:mail: /var/spool/mail : /sbin/nologin
10:operator:x:11:0:operator: /Root : /sbin/nologin
[root@server01 test1] # grep -niC2 root 1.txt
1:root:x:0:0:root: /Root : /bin/bash
2-bin:x:1:1:bin: /bin : /sbin/nologin
3-daemon:x:2:2:daemon: /sbin : /sbin/nologin
--
8-halt:x:7:0:halt: /sbin : /sbin/halt
9-mail:x:8:12:mail: /var/spool/mail : /sbin/nologin
10:operator:x:11:0:operator: /Root : /sbin/nologin
11-operator:x:11:0:operoator: /rt : /sbin/nologin
12-operator:x:11:0:operoooooator: /rt : /sbin/nologin


▎grep/egrep命令的高级用法:配合正则

wKiom1laYHqh6TS5AABxtlkUJsQ879.png


以上用法在shell脚本中比较常见,需要经常练习,熟能生巧。










本文转自Grodd51CTO博客,原文链接:http://blog.51cto.com/juispan/1944215,如需转载请自行联系原作者


相关文章
|
开发框架 负载均衡 Java
Spring Cloud 介绍及负载均衡Ribbon、服务容错Hystrix 组件使用详解
Spring Cloud 介绍及负载均衡Ribbon、服务容错Hystrix 组件使用详解
442 0
|
缓存 移动开发 前端开发
HTML5 应用程序缓存详解
HTML5 应用程序缓存(Application Cache)通过缓存 HTML、JavaScript、CSS 和图像等资源,使 Web 应用能在离线状态下运行。它利用 Manifest 文件(`.appcache`)定义缓存资源列表,浏览器会在加载页面时下载并缓存这些资源。此外,应用程序缓存还提供了事件处理机制,允许开发者监控缓存状态并进行手动管理。尽管这一技术已被视为过时,建议使用 Service Workers 和 Cache API 等现代替代方案来实现更强大的离线功能和缓存控制。
|
人工智能 小程序 JavaScript
【一步步开发AI运动小程序】一、准备工作
随着AI技术的发展,阿里体育推出的“乐动力”、“天天跳绳”等APP,使云上运动会、线上健身等概念备受关注。本文将指导您使用“云智AI运动识别小程序插件”,从零开始开发AI运动小程序,分享这一潮流红利。需提前准备插件申请、掌握相关开发技术并安装好开发工具。
|
Kubernetes Docker Perl
在K8S中,如果是因为开发写的镜像问题导致pod起不来该怎么排查?
在K8S中,如果是因为开发写的镜像问题导致pod起不来该怎么排查?
|
机器学习/深度学习 自然语言处理 算法
一个中心+三大原则 -- 阿里巴巴小蜜这样做智能对话开发平台
        在阿里巴巴智能服务事业部的X蜂会上,小蜜北京团队的高级算法专家李永彬(水德)分享了小蜜智能对话开发平台的构建,围绕平台来源、设计理念、核心技术、业务落地情况四大维度讲述了一个较为完整的智能任务型对话开发平台的全景。
5412 1
|
Linux Go Windows
gopacket使用
gopacket使用
|
存储 Kubernetes Linux
Kubernetes 集群使用 GlusterFS 作为数据持久化存储
Kubernetes 集群使用 GlusterFS 作为数据持久化存储
273 0
|
数据采集 设计模式 前端开发
实战爬虫:通过联行号轻松获取银行支行信息
经过一段时间的加班,终于是把项目熬上线了。本以为可以轻松一点,但往往事与愿违,出现了各种各样的问题。由于做的是POS前置交易系统,涉及到和商户进件以及交易相关的业务,需要向上游支付机构上送“联行号”,但是由于系统内的数据不全,经常出现找不到银行或者联行号有误等情况,导致无法进件。
实战爬虫:通过联行号轻松获取银行支行信息
|
虚拟化
kali安装todesk wps/discord
kali安装todesk wps/discord
850 0
|
机器学习/深度学习 运维 自然语言处理
时序分析五边形战士!清华提出TimesNet:预测、填补、分类、检测全面领先|ICLR 2023(1)
时序分析五边形战士!清华提出TimesNet:预测、填补、分类、检测全面领先|ICLR 2023
961 1

热门文章

最新文章