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. 006 ZigZag Conversion

    The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...

  2. [知乎作答]·关于在Keras中多标签分类器训练准确率问题

    [知乎作答]·关于在Keras中多标签分类器训练准确率问题 本文来自知乎问题 关于在CNN中文本预测sigmoid分类器训练准确率的问题?中笔者的作答,来作为Keras中多标签分类器的使用解析教程. ...

  3. kotlin查看编译后的Java代码

    java学一下kotlin,由于用的是同样的jvm,那就说明他们的字节码文件应该是一样的,那么,如果我们能看到编译后的文件,那么学的更快了. 操作 1.打开一个.kt文件 2.在Android Stu ...

  4. 程序员从初级到中级10个秘诀——摘自CSDN

    程序员从初级到中级10个秘诀 1.学习先进的搜索技术.手段和及策略 2.帮助别人 教别人始终是学习一切东西的最好方法之一.相对而言,由于你在开发领域还是个新手,认为自己没什么可教给人家的,这可以理解. ...

  5. C#在VS2005开发环境中利用异步模式来对一个方法的执行时间进行超时控制

    using System.Threading; using System; namespace ConsoleApplication4 { public class Program { static ...

  6. Magento 中一个订单的“生命历程”

    当我们在网上愉快的买买买的时候, 你知道在这些屏幕“背后”正在进行着什么吗? 1. 当一个产品被加入到购物车后, 实际上发生了什么? 当第一个产品被加入到购物车, 系统首先会生成一个 quote (q ...

  7. 从零开始的全栈工程师——js篇2.4

    条件语句与循环语句 变量提升: 变量提升是浏览器的一个功能,在运行js代码之前,浏览器会给js一个全局作用域叫window ,window分两个模块,一个叫内存模块,一个叫运行模块,内存模块找到当前作 ...

  8. jQuery的parent和parents和closest区别

    1.parent是指取得一个包含着所有匹配元素的唯一父元素的元素集合.2.parents则是取得一个包含着所有匹配元素的祖先元素的元素集合(不包含根元素).可以通过一个可选的表达式进行筛选.3.clo ...

  9. Android stutdio2.2 启动模拟器出现“/dev/kvm is not found.”解决方法

    第一次启动avd,Android stutdio会自动安装Intel HAXM,而且表面看是成功的,再次启动会出现“/dev/kvm is not found.”,这说明Intel HAXM没有安装成 ...

  10. Alembic基本使用

    1.alembic init YOUR_ALEMBIC_DIR 该目录下会有alembic.ini以及YOUR_ALEMBIC_DIR的目录. alembic.ini 提供了一些基本的配置 YOUR_ ...