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的更多相关文章

  1. linux正则表达式企业级深度实践案例2

    [root@redhat~]#  sed  -nr  ' s#([ ^ : ]+)  (: .* :)  (/.*$)#\3\2\1#gp '  /etc/passwd

  2. Linux通配符知识深度实践详解

    注意:linux通配符和三剑客(grep.awk.sed)正则表达式是不一样的,因此,代表的意义也有较大的区别. 通配符一般用户命令行bash环境,而Linux正则表达式用于grep.sed.awk场 ...

  3. Linux实战教学笔记29:MySQL数据库企业级应用实践

    第二十九节 MySQL数据库企业级应用实践 一,概述 1.1 MySQL介绍 MySQL属于传统关系型数据库产品,它开放式的架构使得用户选择性很强,同时社区开发与维护人数众多.其功能稳定,性能卓越,且 ...

  4. Zabbix监控系统深度实践

    Zabbix监控系统深度实践(企业级分布式系统自动化运维必选利器,大规模Zabbix集群实战经验技巧总结,由浅入深全面讲解配置.设计.案例和内部原理) 姚仁捷 著  ISBN 978-7-121-24 ...

  5. 深度实践KVM笔记

    深度实践KVM笔记 libvirt(virt-install,API,服务,virsh)->qemu(qemu-kvm进程,qemu-img)->KVM虚拟机->kvm.ko 内核模 ...

  6. Linux 正则表达式_010

    Linux 正则表达式 标注:本教程只针对linux运维的三剑客命令awk,sed,grep正则表达式 什么是正则表达式? 简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法通过定义的这 ...

  7. MySQL数据库企业级应用实践(主从复制)

    MySQL数据库企业级应用实践(主从复制) 链接:https://pan.baidu.com/s/1ANGg3Kd_28BzQrA5ya17fQ 提取码:ekpy 复制这段内容后打开百度网盘手机App ...

  8. Linux 正则表达式与文本处理器 三剑客

    Linux 正则表达式与文本处理器 三剑客 一.正则表达式 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则. 在linu ...

  9. Linux正则表达式与grep

    bash是什么 bash是一个命令处理器,运行在文本窗口中,并能执行用户直接输入的命令 bash还能从文件中读取linxu命令,称之为脚本 bash支持通配符.管道.命令替换.条件判断等逻辑控制语句 ...

随机推荐

  1. Android的网络通信

    Android平台有三种网络接口可以使用,他们分别是:java.net.*(标准Java接口).Org.apache接口和Android.net.*(Android网络接口).大多数的Android应 ...

  2. Ubuntu14.04下sogou输入法的输入框只显示英文不显示中文的问题

    解决方法:首先强制更新,把依赖文件全部安装 sudo apt-get install -f 如果仍然不管用,删除sogou的配置文件,在~/.config目录下,一般情况下是SogouPY.Sogou ...

  3. (转)Linux系统基础网络配置老鸟精华篇

    Linux系统基础网络配置老鸟精华篇 原文:http://blog.51cto.com/oldboy/784625 对于linux高手看似简单的网络配置问题,也许要说出所以然来也并不轻松,因此仍然有太 ...

  4. pat1059. Prime Factors (25)

    1059. Prime Factors (25) 时间限制 50 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 HE, Qinming Given ...

  5. docker exit status 255解决

    一 windows开发整docker就是痛苦,在公司win7电脑想拿起几年没再用的docker 结果直接报错 Error getting IP address: ssh command error: ...

  6. Java并发基础:线程的创建

    线程的创建和管理: 1.应用Thread类显式创建.管理线程 2.应用Executor创建并管理线程. 定义任务: 无返回的任务:实现Runnable接口并编写run()方法. 有响应的任务:实现Ca ...

  7. https微信分享看不到图片的坑

    最近在做一个活动项目的时候一开始走的http,发现网络被劫持的特别严重,没办法,只能改走https,但是修改为https后发现在使用微信js-sdk分享的时候看不到缩略图,直接通过地址打开是可以找开图 ...

  8. iOS多线程系统整理 swift

    多线程   是一个应用程序内多个代码的执行路径,执行线程,同时在同一时间里执行不同的任务. 三种: 1.NSTread 2.Cocoa NSOperation (NSOperation,NSOpera ...

  9. 禁止ASP.NET MVC模型绑定时将空字符串绑定为null

    为model添加[DisplayFormat(ConvertEmptyStringToNull = false)] [Display(ResourceType = typeof(AppStrings) ...

  10. Payoneer个人账户注册申请教程

    1)照牛排于2013年末写的<免费申请Payoneer万事达预付卡+美国银行账号教程>非常详尽,网友纷纷转载,但生命在于折腾,Payoneer官网几经改版,自2015年3月推出无卡账户以来 ...