linux正则表达式企业级深度实践案例1
linux正则表达式结合三剑客企业级实践:
1、取系统ip
[root@redhat~]# ifconfig eth0
解答:
替换命令:
sed 's#支持正则位置##g' file
先取第2行:
[root@redhat~]# ifconfig eth0 | sed -n ' 2p '
inet addr:192.168.31.135 Bcast:192.168.31.255 Mask:255.255.255.0
^ .*匹配,如果不给目标前的固定结尾就会匹配到行尾,结果就匹配一行
[root@redhat~]# ifconfig eth0 | sed -n ' 2p ' | sed ' s#^ .*##g '
对目标前的内容匹配替换:
[root@redhat~]# ifconfig eth0 | sed -n ' 2p ' | sed ' s#^ .*dr :##g '
192.168.31.135 Bcast:192.168.31.255 Mask:255.255.255.0
对目标后的内容匹配替换:
[root@redhat~]# ifconfig eth0 | sed -n ' 2p ' | sed ' s#^ .*dr :##g ' | sed ' s#B.*$##g '
192.168.31.135 <==这里结尾有两个空格
[root@redhat~]# ifconfig eth0 | sed -n ' 2p ' | sed ' s#^ .*dr :##g ' | sed ' s# B.*$##g '
192.168.31.135 <==这里结尾无空格
sed -n 's#支持正则位置##gp' file
inet addr:192.168.31.135 Bcast:192.168.31.255 Mask:255.255.255.0
处理技巧:
匹配需要的目标(获取的字符串如上文的ip)前的字符串一般用以..开头(^.*)来匹配开头,匹配的结尾写上实际的字符,
如: " ^.*addr: " 表达式就匹配 " inet addr: " ,而处理需要的目标后的内容一般在匹配的开头写上实际的字符,而结尾是用以...结尾(.*$)来匹配。如:Bcast: .*$ 部分表示匹配 "Bcast: 192.168.31.255 Mask:255.255.255.0"。
方法2:
替换命令1:
sed -nr ' s#支持正则位置##gp ' file
指定行号:s前的2为行号
sed -nr ' 2s#支持正则位置##gp ' file
解答:
[root@redhat~]# ifconfig eth0 | sed -n ' s#^ .*adrr :##g ' | sed -n ' s# Bc.*$##gp '
192.168.31.135
[root@redhat~]# ifconfig eth0 | sed -n ' 2s#^ .*adrr :##g ' | sed -n ' s# Bc.*$##gp '
192.168.31.135
sed的后向引用:
sed -n ' s#() ()#\1\2#gp ' file
当在前面匹配部分用小括号的时候,第一个括号内容,可以在后面部分用\1输出。
第一个括号内容,可以在后面部分用\2输出。
[root@redhat~]# echo I am redhat linux. >a.txt
[root@redhat~]# cat a.tet
I am redhat linux.
[root@redhat~]# sed -n ' s#^ .*m ##gp ' a.txt
redhat linux.
[root@redhat~]# sed -nr ' s#^ .*m (.*) l.*$#\l#gp ' a.tet
redhat
[root@redhat~]# ifconfig eth0 | sed -nr ' s#^ .*dr:(.*) B.*$#\l#gp '
linux正则表达式企业级深度实践案例1的更多相关文章
- linux正则表达式企业级深度实践案例2
[root@redhat~]# sed -nr ' s#([ ^ : ]+) (: .* :) (/.*$)#\3\2\1#gp ' /etc/passwd
- Linux通配符知识深度实践详解
注意:linux通配符和三剑客(grep.awk.sed)正则表达式是不一样的,因此,代表的意义也有较大的区别. 通配符一般用户命令行bash环境,而Linux正则表达式用于grep.sed.awk场 ...
- Linux实战教学笔记29:MySQL数据库企业级应用实践
第二十九节 MySQL数据库企业级应用实践 一,概述 1.1 MySQL介绍 MySQL属于传统关系型数据库产品,它开放式的架构使得用户选择性很强,同时社区开发与维护人数众多.其功能稳定,性能卓越,且 ...
- Zabbix监控系统深度实践
Zabbix监控系统深度实践(企业级分布式系统自动化运维必选利器,大规模Zabbix集群实战经验技巧总结,由浅入深全面讲解配置.设计.案例和内部原理) 姚仁捷 著 ISBN 978-7-121-24 ...
- 深度实践KVM笔记
深度实践KVM笔记 libvirt(virt-install,API,服务,virsh)->qemu(qemu-kvm进程,qemu-img)->KVM虚拟机->kvm.ko 内核模 ...
- Linux 正则表达式_010
Linux 正则表达式 标注:本教程只针对linux运维的三剑客命令awk,sed,grep正则表达式 什么是正则表达式? 简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法通过定义的这 ...
- MySQL数据库企业级应用实践(主从复制)
MySQL数据库企业级应用实践(主从复制) 链接:https://pan.baidu.com/s/1ANGg3Kd_28BzQrA5ya17fQ 提取码:ekpy 复制这段内容后打开百度网盘手机App ...
- Linux 正则表达式与文本处理器 三剑客
Linux 正则表达式与文本处理器 三剑客 一.正则表达式 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则. 在linu ...
- Linux正则表达式与grep
bash是什么 bash是一个命令处理器,运行在文本窗口中,并能执行用户直接输入的命令 bash还能从文件中读取linxu命令,称之为脚本 bash支持通配符.管道.命令替换.条件判断等逻辑控制语句 ...
随机推荐
- spring boot(10) 基础学习内容
A Spring boot(10) 基础学习内容 B SpringBoot(16) 基础学习内容
- sql新增字段注意事项
新增字段的类型.长度(精度)是否合适 解决方法: 跟应用明确加字段和改字段的风险,确认新增字段类型正确.长度(精度)合适. 以及跟应用明确老数据是否要订正?如何订正?新增列是否非空?是否有默认值等等. ...
- 022 Generate Parentheses 生成括号
给 n 对括号,写一个函数生成所有合适的括号组合.比如,给定 n = 3,一个结果为:[ "((()))", "(()())", "(())() ...
- Unity www动态加载网上图片
一. 1.新建一个UGUI的Button,删掉它的Image组件,添加一个Raw Image组件.如图: 由于删除了Image组件,所以画圈的位置是空的,运行后会自动把Raw Image添加到那里. ...
- bash:haoop:command not found
今天重新搭建了一个3节点的Hadoop集群,想着在上面测试一个MapReduce实例,然后就出现了以下错误: [hadoop@master hadoop-]$ hadoop -bash: hadoop ...
- ADODB.Stream在进行文件上传时报错
最近在做web项目,有个控件是上传材料文件和文件夹,本地运行正常,放到服务器上,一直报错:AutoRuntime服务器无法创建..... 解决方法: 1.配置ie浏览器的安全级别 2.修改ie浏览器对 ...
- 使用.NET配置文件appSettings元素的File属性
今天又一次郁闷了,看Orchard真实学到不少东西哇! Web.Config里面appSettings节点原来可以直接引用一个文件,以前还老想着微软真二,配置节点多了肿么办? 本质上来说,每一个可执行 ...
- 10.&与&&以及位运算符。
这是单独的一块,因为一条讲不清楚(虽然内容也不够一篇),而且我之前也没好好弄清楚,所以有必要写出来. 说位运算符也是从&与&&(|与||类似)之间的区别讲起的.事实上,对于两个 ...
- asp.net 在IIS上配置出现的一些问题
1.可能会遇到一下图的错无.请求的内容似乎是脚本.因而将无法由静态文件处理程序来处理---大概的原因是应用程序池选择错误了.如第二幅图如此解决即可 解决方案如下两个图所示. 我遇到了以上的问题之后能也 ...
- KBEngine warring项目源码阅读(二) 登录和baseapp的负载均衡
原本不打算把登录拿出来写的,但是阅读登录部分的代码的时候发现登录和注册还不太一回事,因为登录涉及到分配baseapp的ip,负载均衡的实现,所以水一下. 流程图: 和上次一样,先是找unity控件 找 ...