linux正则表达式基础部分
1.什么是正则表达式?
简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法,
例如:假设“@”代表boy,“!”代表girl。echo“@!” === “boygirl”
通过定义的这些特殊符号的辅助,系统管理员就可以快速过滤,替换或输出需要的字符串。
linux正则表达式一般以行为单位处理的。
2.为什么要学会正则表达式?
在企业工作中,我们每天做的linux运维工作中,时刻都会面对大量带有字符串的文本配置、程序、命令输出及日志文件等,而我们经常会有迫切的需要,从大量的字符串内容中查找符合工作需要的特定的字符串。这就要靠正则表达式。因此,可以说正则表达式就是为过滤这些字符串的需求而生的。
3.容易混淆的两个注意事项:
a.正则表达式应用非常广泛,存在于各种语言中,例如:php,python,java等。但是,我们今天讲的是linux系统运维工作中的正则表达式,即linux正则表达式,最常应用正则表达式的命令就是grep(egrep),sed,awk,换句话说linux三剑客要想能工作的更高效,那一定离不开正则表达式配合的。
b.正则表达式和我们常用的通配符特殊字符是有本质区别的,这一点要注意。
通配符例子:ls *.log 这里的*就是通配符(表示所有),不是正则表达式。
一、基础正则第一波字符说明:
1)^word 匹配以word开头的内容。 vi/vim编辑器里^代表一行的开头
2)word$ 匹配以word结尾的内容。 vi/vim编辑器里$代表一行的结尾
3)^$ 表示空行
二、基础正则第二波字符说明:
4). 代表且只能代表任意一个字符
5)\ 转义符号,例 \. 就只代表点本身,让有着特殊身份意义的字符脱掉马甲,还原原型
6)* 重复0个或多个前面的一个字符,例0*匹配没有0,有1个0或多个00000
7).* 匹配所有字符。延伸 ^.* 以任意多个字符开头。.*$ 以任意多个字符结尾
提示:点(.)的特殊含义小结:
1、当前目录
2.使得文件生效相当于source
3.隐藏文件
4.任意一个字符(grep正则)
三、基础正则第三波字符说明:
8)[abc] 匹配字符集合内的任意一个字符[a-zA-Z],[0-9]
9)[^abc] 匹配不包含^后的任意一个字符的内容
中括号里的^为取反,注意和中括号外面以 ... 开头区别
10)a\{n,m\} 重复n到m次,前一个重复的字符。如果用egrep/sed -r可以去掉斜线
a\{n,\} 重复至少n次,前一个重复的字符。如果用egrep/sed -r可以去掉斜线
a\{n\} 重复n次,前一个重复的字符。如果用egrep/sed -r可以去掉斜线
a\{,m\}
注意:egrep(grep -E)或sed -r过滤一般特殊字符可以不转义(不用\)
三剑客“grep”总结
grep一般常用参数:
-a:在二进制文件中,以文本文件的方式搜索数据
-c:计算找到‘搜索字符串’的次数
-o:仅显示出匹配regexp的内容(用于统计出现文中的次数)
-i:忽略大小写的不同,所以大小写视为相同
-n:匹配的内容在其行首显示行号
-v:反向选择,即显示没有‘搜索字符串’内容的那一行
-E:扩张的grep,即egrep
--color=auto:以特定颜色高亮显示匹配关键字
提示:-i,-v为常用参数
-A:After的意思,显示匹配字符串及其后n行的数据
-B:before的意思,显示匹配字符串及其前n行的数据
-C:context的意思,显示匹配字符串及其前后各num行
linux正则表达式基础部分的更多相关文章
- linux正则表达式基础
linux中awk,sed,grep等 命令使用区别正则表达式基础 在最简单的情况下,一个正则表达式看上去就是一个普通的查找串.例如,正则表达式"testing"中没有包含任何元字 ...
- linux正则表达式之-基础正则表达式(基于grep)
linux正则表达式: 简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法,如:假设@代表123456,!代表abcde.通过定义的这些特殊符号的铺助,系统管理员就可以快速的过滤,替换或 ...
- (大数据工程师学习路径)第一步 Linux 基础入门----正则表达式基础
介绍 虽然我们这一节的标题是正则表达式,但实际这一节只是介绍grep,sed,awk这三个命令,而正则表达式作为这三个命令的一种使用方式(命令输出中可以包含正则表达式).正则表达式本身的内容很多,要把 ...
- Linux学习(2)- 正则表达式基础
Linux学习(2)- 正则表达式基础 一.基础正则表达式介绍与练习 学习内容 正则表达式特殊符号 [:alnum:]代表英文大小写字母及数字 [:alpha:]代表英文大小写字母 [:blank:] ...
- linux正则表达式(基础正则表达式+扩展正则表达式)
正则表达式应用非常广泛,例如:php,Python,java等,但在linux中最常用的正则表达式的命令就是grep(egrep),sed,awk等,换句话 说linux三剑客要想能工作的更高效,就一 ...
- Linux正则表达式、shell基础、文件查找及打包压缩
Linux正则表达式.shell基础.文件查找及打包压缩 一.正则表达式 Linux正则表达式分为2类: 1.基本正则表达式(BRE) 2.扩展正则表达式(ERE) 两者的区别: 1.使用扩展正则表达 ...
- bash shell学习-正则表达式基础 (笔记)
A gentleman is open-minded and optimistic; a small person is narrow-minded and pessimistic. "君子 ...
- Linux正则表达式grep与egrep
grep -io "http:/=[A-Z0-9]\{16\}" ./wsxf.txt >wsxf_urls.txt Linux正则表达式grep与egrep 正则表达式:它 ...
- Linux的基础命令, django的安装与使用
一. Linux一些基础指令 cat命令, 用于查看纯文本文件(常用于内容较少的) cat 校花的故事.txt # 查看文件 cat -n 校花的故事.txt # 查看文件并显示行号 -n 显示行号 ...
随机推荐
- ip route,ip rule, iptables和docker的端口映射
iptables 默认5个表, 不可增加其他表 raw 用于配置数据包,raw 中的数据包不会被系统跟踪. filter 是用于存放所有与防火墙相关操作的默认表. nat 用于 网络地址转换(例如:端 ...
- k8s的ingress使用
ingress 可以配置一个入口来提供k8s上service从外部来访问的url.负载平衡流量.终止SSL和提供基于名称的虚拟主机. 配置ingress的yaml: 要求域名解析无误 要求servic ...
- Spring学习(二)Spring的bean管理(XML)
Bean的实例化方式 1.在Spring里面通过配置文件创建对象 2.bean实例化的三种方式第一种:使用类的无参数构造函数创建(最常用的方式,第2种和第3种方法一般不用) 如果类里面没有无参的构造函 ...
- OpenStack Cirros
Cirros Openstack的开发,基本都使用这个image来测试,因为他比较小,只有10M. 镜像介绍 镜像的地址: https://launchpad.net/cirros/trunk/0.3 ...
- 解决apache启动错误 AH00558: httpd: Could not reliably determine...
[root@localhost httpd-2.4.7]# /usr/local/httpd/bin/apachectl start AH00558: httpd: Could not reliabl ...
- SpringBoot | 第二十三章:日志管理之整合篇
前言 在本系列<第四章:日志管理>中,由于工作中日志这块都是走默认配置,也没有深入了解过,因为部署过程中直接使用了linux中的输出重定向功能,如java -jar xx.jar > ...
- 消除transition闪屏
消除transition闪屏.css {-webkit-transform-style: preserve-3d;-webkit-backface-visibility: hidden;-webkit ...
- Spring MVC的测试
测试是保证软件质量的关键. 与 Spring MVC 相关的测试,主要涉及控制器的测试. 为了测试Web项目通常不需要启动项目,需要一些Servlet相关的一些模拟对象,比如MockMVC.MockH ...
- 三种zigbee网络架构详解
在万物互联的背景下,zigbee网络应用越加广泛,zigbee技术具有强大的组网能力,可以形成星型.树型和网状网,三种zigbee网络结构各有优势,可以根据实际项目需要来选择合适的zigbee网络结构 ...
- Dll注入:Ring3 层 APC注入
APC,即Asynchronous procedure call,异步程序调用APC注入的原理是:在一个进程中,当一个执行到SleepEx()或者WaitForSingleObjectEx()时,系统 ...