文本三剑客之grep

目录

一、正则表达式

1、什么是正则表达式

2、元字符

 3、扩展正则表达式元字符

二、grep


一、正则表达式

1、什么是正则表达式

REGEXP: Regular Expressions,由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能,类似于增强版的通配符功能,但与通配符不同,通配符功能是用来处理文件名,而正则表达式是处理文本内容中字符。

正则表达式被很多程序和开发语言所广泛支持:vim, less,grep,sed,awk, nginx,mysql 等

  • 正则表达式,又称正规表达式、常规表达式
  • 使用字符串来描述、匹配一系列符合某个规则的字符串

正则表达式组成

  • 普通字符包括大小写字母、数字、标点符号及一些其他符号。
  • 元字符是指在正则表达式中具有特殊意义的专用字符

可以使用

man 7 regex

可以使用man手册帮助

2、元字符

--- 基础正则表达式常见元字符

(支持的工具:grep、egrep、sed、awk)

字符作用
\

转义,把一些特殊的符号转换成普通的符号字符,还可以把一些普通字符转换成特殊功能,例:\!、\n、\$等

^

表示匹配字符串开始的位置,匹配行首,例: ^a、 ^#
$表示匹配字符串末尾的位置,匹配行尾,例: word$、 #$ ;^$表示空行

.

匹配任意的单个字符,例: go.d、g..d
*匹配前面子表达式0次或者多次,贪婪模式所以尽可能长,例: goo*d、go.*d
.*表示任意长度的任一字符,不包括0次
\?

匹配其前面字符0或1次,可有可无

\+匹配其前面字符最少1次,有且大于等于1次

\{n\}

匹配前面的子表达式n次,例:mo\{2\}y、'[0-9]\{ 2\ }'匹配两位及两位以上数字
\{n,\}匹配前面的子表达式不少于n次,例: mo\{2,\}y、'[0-9]\{2,\}'匹配两位及两位以上数字
\{,n\}匹配前面的子表达式不多于n次
\{n,m\}匹配前面的子表达式n到m次(m>=n),例: mo\{2,3\}y、'[0-9]\{2,3\}'匹配两位到三位数字
注: egrep(grep-E)、awk使用{n }、{n, }、{n,m}匹配时"{}”前不用加"\"
\w匹配包括下划线的任何单词字符
\W匹配任何非单词字符。等价于"[^A-Za-z0-9_]"。
\d匹配一个数字字符
\D匹配一个非数字字符。等价于[^0-9]。
\s空白符
[:alpha:]字母,即A-Z,a-z
[:alnum:]字母和数字
[:lower:]小写字母,即a-z
[:upper:]大写字母,即A-Z
[:blank:]空白字符(空格和制表符)
[:space:]包括空格、制表符、换行符、回车符等各类型空白
[:print:]可打印字符
[:punct:]标点符号

 3、扩展正则表达式元字符

grep -E

字符作用
+表示匹配前面的子表达式1次以上
?表示匹配前面的子表达式0或者1次

( )

将括号里的内容看成一个整体
|以或的方式匹配字符串

二、grep

格式:

grep [选项]… 查找条件 目标文件

选项:

选项功能

-color=auto

对匹配到的文本着色显示
-m  #

匹配到#次后停止;匹配到#行后停止

-v显示没有被匹配到的行,即取反
-i忽略字符大小写
-n显示匹配到的行号
-c统计匹配到的行数
-o仅显示匹配到的字符串
-q静默模式,不输出任何信息
-A  #匹配到的行后#行也显示出来
-B  #匹配到的行前#行也显示出来
-C  #匹配到的行前后各#行也显示出来
-e实现多个选项间的逻辑or关系
-w匹配整个单词
-E扩展正则表达式,相当于egrep
-F不支持正则表达式,相当于fgrep
-f

file根据模式文件,处理两个文件相同内容,把第一个文件作为匹配条件

-r递归目录,但不处理软链接
-R递归目录,处理软链接

实例:

1、统计当前主机的连接状态

2、统计当前连接的主机数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/442632.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tidb节点重启后,服务无法重连

大家好,我是烤鸭: 前几天遇到tidb节点重启后服务无法重连,确切地说是两个服务,一个可以正常重连,一个不行。 问题复现 由于线上执行慢SQL,导致TiDB 单个节点宕机重启。 其中A服务的3个节点和B服务的1个节…

STM32——USART

一、通信 1.1通信是什么; 通信是将一个设备的数据发送到另一个设备中,从而实现硬件的扩展; 1.2通信的目的是什么; 实现硬件的扩展-在STM32中集成了很多功能,例如PWM输出,AD采集,定时器等&am…

springboot142新冠病毒密接者跟踪系统

新冠病毒密接者跟踪系统设计与实现 摘 要 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲&#xff…

【css】设置渐变阴影

css的属性中没有直接设置渐变阴影的,但是可以通过伪元素去实现。 .box-wrap{width: 100%;display: grid;place-content: center; } .box {width: 150px;height: 150px;background: #eee;border: 1px solid #585252;position: relative;transform: translate(0);/* …

Observability:在 Elastic Stack 8.12 中使用 Elastic Agent 性能预设

作者:来自 Elastic Nima Rezainia, Bill Easton 8.12 中 Elastic Agent 性能有了重大改进 最新版本 8.12 标志着 Elastic Agent 和 Beats 调整方面的重大转变。 在此更新中,Elastic 引入了 Performance Presets,旨在简化用户的调整过程并增强…

MATLAB - 仿真单摆的周期性摆动

系列文章目录 前言 本例演示如何使用 Symbolic Math Toolbox™ 模拟单摆的运动。推导摆的运动方程,然后对小角度进行分析求解,对任意角度进行数值求解。 一、步骤 1:推导运动方程 摆是一个遵循微分方程的简单机械系统。摆最初静止在垂直位置…

力扣136、只出现一次的数字(简单)

1 题目描述 图1 题目描述 2 题目解读 在非空整数数组nums中,有一个元素只出现了一次,其余元素均出现两次。要求找出那个只出现一次的元素。 3 解法一:位运算 位运算,是一种非常简便的方法。 3.1 解题思路 异或运算,有…

《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述(3)

接前一篇文章:《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述(2) 4.1 PCIe总线的基础知识 与PCI总线不同,PCIe总线使用端到端的连接方式,在一条PCIe链路的两端只能各连接一个设备,这两个…

如何开立一个融资融券账户?

第一:什么是融资融券?融资融券交易,又称“证券信用交易”,是指投资者通过向具有融资融券业务资格的证券公司提供担保物,借入资金买入证券(融资交易)或借入证券并卖出(融券交易&#…

【LeetCode: 25. K 个一组翻转链表 + 链表 + 递归】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

盲盒小程序开发,实现“双收益”

盲盒在我国是一个发展潜力较高的市场,盲盒具有的刺激和收藏价值,深受消费者的喜爱,盲盒的“隐藏款”机制,能够为消费者带来惊喜感。盲盒一般与影视动漫IP合作,推出盲盒商品,这也是深受年轻人追捧的一大特点…

Linux 系统服务

一、CentOS 6 与 CentOS 7开机流程 1.CentOS 6 1.1.打开电源首先通过内核引导开机。 1.2.开机自检,加载 BIOS 硬件信息。 1.3.MBR 记录一般是在磁盘0磁道0扇区,共512个字节。前446个字节是 BootLoder。计算机不知道我们的系统在哪里,所以需…