正则表达式技术实例

linux运维正则表达式实战

1.什么是正则表达式?
简单的说,正则表达式就是一套处理大量的字符串而定义的规则和方法。
例如:假设 @代表12345 
通过正则表达式这些特殊符号,我们可以快速的过滤、替换需要的内容。
linux正则一般以行为单位处理的。

2.为什么要学习正则表达式?
再工作中,我们做linux运维工作,时刻面对着大量的日志,程序,命令的输出。
迫切的需要过滤我们需要的一部分内容,甚至是一个字符串。

3.理解两个误区注意事项:
a.正则表达式的应用非常广泛,存在于各种语言中,PERL,PHP,JAVA等。
我们今天给大家讲解的就是linux的正则表达式,系统运维工作中常用的正则表达式
常用的正则表达式的命令为grep(egrep),sed,awk。
linux的三剑客很牛,要想三剑客玩得更好,那就一定离不开正表达式。

b.linux正则表达式和我们命令行中其他的命令使用的通配符是有本质区别的。

4.实验的3个注意事项:
a.linux正则一般以行为单位处理的。
b.alias grep=‘grep --color=auto‘
c.注意字符集,LC_ALL=C,不是必须

5.linux正则表达式细节
基于grep来讲的。
基础正则表达式:BRE(basic regular expression)
1)^word 表示搜索以word开头的内容。
2)word$ 表示搜索以word结尾的内容。
3)^$    表示空行,不是空格。
4).      代表且只能代表任意一个字符。(当前目录,加载文件)
5)\      转义字符,让有着特殊身份意义的字符,脱掉马甲,还原原型。
          例如:\.只表示小数点,还原原始小数点的意义。
6)*      重复0个或多个前面的一个字符。不代表所有了。
7).*     匹配所有的字符。^.* 任意多个字符开头。
8)[abc]  匹配字符集合内任意一个字符[a-z]
9)[^abc] ^再中括号里面表示非,不包含a或b或c。
10){n,m} 重复n到m次,前一个字符。
    {n,} 至少N次,多了不限。
    {n}  N次
    {,m} 至多m次,少了不限。
   注意:grep 要对{转义} \{\},egrep(grep -E)不需要转义
基础的正则就讲完了。
6.grep命令参数小结
-v 排除匹配的内容
-E 支持扩展的正则表达式
-i 忽略大小写
-o 只输出匹配的内容
--color=auto 匹配的内容显示颜色。
-n 再行首显示行号

7.取IP地址练习正则:

sed基本语法:
s替换
g全局
-i 修改文件
-n 取消默认输出
 p 打印内容
-r 支持扩展正则

考题:
ifconfig eth0:
         inet addr:10.0.0.7  Bcast:10.0.0.255  Mask:255.255.255.0
目标:10.0.0.7
过滤思想:
目标之前的内容“         inet addr:” 就用 ^.*addr:
目标结尾的内容"  Bcast:10.0.0.255  Mask:255.255.255.0"   就用Bc.*$
命令实战:
特殊直接sed取行*:
[[email protected] oldboy]# ifconfig eth0|sed -n ‘2s#^.*addr:##gp‘|sed ‘s#  Bc.*$##g‘
10.0.0.7
[[email protected] oldboy]# ifconfig eth0|sed -n ‘2s#^.*addr:\(.*\)  Bc.*$#\1#gp‘
10.0.0.7
[[email protected] ~]# ifconfig eth0|sed -rn ‘2s#^.*addr:(.*)  Bc.*$#\1#gp‘
10.0.0.8
[[email protected] oldboy]# ifconfig eth0|sed -n ‘2s#^.*addr:\([0-9]\{,3\}\.[0-9]\{,3\}\.[0-9]\{,3\}\.[0-9]\{,3\}\)  Bc.*$#\1#gp‘
10.0.0.7

考题:
请用ifconfig,输出ip及广播地址
sed  -n ‘s#\(dddd\)\(ffff\)#\1\2#gp‘ 同样适合grep。
命令:
[[email protected] ~]# ifconfig eth0|sed -nr ‘s#^.*dr:(.*) [a-zA-Z].*t:(.*)  Ma.*$#\1\2#gp‘   
10.0.0.8 10.0.0.255

扩展的正则表达式:grep -E 以及egrep
后期有机会再分享吧!
下面是后补的,讲座没时间讲了。
8.扩展的正则表达式:ERE
1)+ 重复一个或一个以上前面的字符。
2)? 重复0个或一个0前面的字符。
3)|用或的方式查找多个符合的字符串
4)() 找出 “用户组”字符串。
另外一个了解的知识:posix方括号字符集(挺鸡肋的知道就得)
       [:alnum:]             [:lower:]          [:xdigit:]
       [:alpha:]             [:print:]            [:blank:]
       [:blank:]             [:punct:]
       [:cntrl:]             [:space:]
       [:graph:]             [::upper:]
5)man bash
   man grep

时间: 2024-10-14 11:23:29

正则表达式技术实例的相关文章

日志聚合与关联分析技术实例视频演示

日志聚合与关联分析技术实例视频演示 各种网络应用日志如何预处理变成事件,各类事件又是如何经过聚合进行关联分析的技术已在<开源安全运维平台OSSIM最佳实践>一书进行了详尽的分析,下面就给大家展示,在大数据IDS机房环境中如何在海量日志中,快速定位SSH暴力破解攻击源,让你看得见网络攻击. 高清视频地址: http://www.tudou.com/programs/view/uP0V9fQlzuo 看过之后,感觉如何?ELK.Splunk系统能实现吗?这里我只是举了SSH的例子,可类似这种可视化

PHP正则表达式及实例

PHP正则表达式及实例 博客分类: Php / Pear / Mysql / Node.js 正则表达式PHPWordPressFPApache 关联: 正则表达式 去除连续空白 + 获取url +分割url PHP正则表达式提取超链接及其标题 对于开发人员来说,正则表达式是一个非常有用的功能.它提供了 查找,匹配,替换 句子,单词,或者其他格式的字符串.在这篇文章里,我已经编写了15个贼拉有用的正则表达式,WEB开发人员都应该将它收藏到自己的工具包. 开始使用正则表达式 对初学者来说,正则 看

java反射技术实例

java反射技术实例?1. [代码][Java]代码     package com.gufengxiachen.java.reflectiontest; public class Person {private String name;private int age;private static int total;public Person(){super();total++;}public Person(String name,int age){super();this.name=name

大快搜索数据爬虫技术实例安装教学篇

大快搜索数据爬虫技术实例安装教学篇 爬虫安装前准备工作:大快大数据平台安装完成.zookeeper.redis.elasticsearch.mysql等组件安装启动成功. 1.修改爬虫安装配置文件(最好在线下修改好后再上传平台) 2.修改crawler\dkcrw\jdbc.properties配置文件(只修改图片里的内容其他内容默认即可) Hbase.zookeeper.quorum所填地址应在DKM监控平台查看: Redis相关配置看如下界面: 3.把已修改的crawler\dkcrw\下的

2019手机号码JS正则表达式验证实例代码

这篇文章主要介绍了2019手机号码JS正则表达式验证实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考概念 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑. 简介 正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符

java正则表达式常用实例——借鉴思路

转载自:http://mp.weixin.qq.com/s?__biz=MjM5OTM4NDMyMg==&mid=2650044497&idx=1&sn=dc80fa35f7eeb6887efec168733e913f&chksm=bf3c9c3c884b152af257fb7700ae240ccb3a7d900ff8bccba30505653073ea1262cf67fe0b54&scene=0#wechat_redirect 1 . 校验密码强度密码的强度必须是

黑客经验谈:跳板攻击入侵技术实例解析

网络入侵,安全第一.一个狡猾.高明的入侵者,不会冒然实行动.他们在入侵时前会做足功课,入侵时会通过各种技术手段保护自己,以防被对方发现,引火烧身.其中,跳板技术是攻击者通常采用的技术.下面笔者结合实例,解析攻击入侵中的跳板技术. 1.确定目标 攻击者在通过扫描工具进行定点(IP)扫描或者对某IP段扫描的过程中发现了该系统(服务器)的某个漏洞,然后准备实施攻击. 比如,笔者通过对某IP段的扫描,发现该IP段IP地址为211.52.*.84的主机存在MYSQL漏洞,可以通过提权获取系统权限进而控制该

iSCSI网络存储技术-实例解读

1 iSCSI介绍 网络存储服务器主要有三种解决方案--DAS直连存储,SAN区域网路存储 ,NAS网络附加存储,san和nas的主要区别在于,nas共享的是文件系统,san共享的是块设备. iSCSI是一种基于TCP/IP 的协议,用来建立和管理IP存储设备.主机和客户机等之间的相互连接,并创建存储区域网络(SAN).SAN 使得SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行.SCSI 结构基于C/S模式,其通常应用环境是:

正则表达式及实例

foo ——————字符串“foo” ^foo ——————以“foo”开头的字符串 foo$ ——————以“foo”结尾的字符串 ^foo$ ——————“foo”开头和结尾,(只能是他自己 ) [abc]—————— a 或者b 或者c [a-z] —————— a到z之间任意字母 [^A-Z]——————除了 A-Z这些之外的字符 (gif|jpg)——————“gif”或者 “jpeg” [a-z]+—————— 一个或者多个 a到z之间任意字母 [0-9.-]—————— 0-9之间