码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式解析 & awk/sed/grep实用实例总结文档

时间:2016-09-14 17:02:27      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:linux   正则表达式   sed   grep   awk   

##正则表达式特殊字符解析

"^"匹配行首
"$"匹配行尾
"^$"

匹配整行为空,空行

grep -v "^$"    打印非空的行

"." 代表且只能代表任意一个字符
"*"重复0个或多个前面一个的字符。例如"o*",重复一个或多个o
".*" 匹配所有字符。延伸: "^.*" -->以任意多个字符开头。".*$"-->以任意多个字符结尾
"\"让有特殊意义的字符,脱掉马甲,还原原型。例如"\.",就只代表“.”点本身
"[abc]"匹配"[]"中括号内的任意一个字符
"[^abc]"匹配不包含"^"后的任意一个字符的内容,即匹配不包含"a"|"b"|"c"的内容

(1)"a\{n,m\}"

(2)"a\{n,\}" 

(3)"a\{n\}”

(4)"a\{,m\}" 

(1)匹配将前一个字符,重复n->m次的内容,egrep/sed -r或者grep -E可以省去\转义。即将"a"字符重复n到m的内容匹配

(2)前一个字符至少重复n次

(3)前一个字符重复n次

(4)前一个字符最多重复m次。即将a重复0-m次的内容匹配

##实例1

#实战准备

mkdir -p /root/test0513/

调整字符集:exportLC_ALL=C    或者    echo "exportLC_ALL=C" >>/etc/profile && source /etc/profile

技术分享

grep -n "^m" oldboy.log    打印以m开头的行
grep -n "m$" oldboy.log    打印以m结尾的行
grep -n "^$" oldboy.log    打印空白行
grep -nv "^$" oldboy.log    打印非空的行

技术分享

grep "." oldboy.log    打印包含任意字符的行,即空白行不包含字符,不打印
grep ".*" oldboy.log    任意字符重复0-n次,即所有打印所有行
grep ".*$" oldboy.log    打印以任意字符结尾,且重复0-n次,即包括空白行
grep "^.*" oldboy.log    打印以任意字符开头,且重复0-n次,即包括空白行
grep "old.*y" oldboy.log    打印old和y之间包含任意字符的行
grep "0*" oldboy.log        打印包含重复0次到任意多次0的行

技术分享


技术分享


技术分享

grep "[a-z]"oldboy.log    打印所有包含小写字母a-z的行
grep "[^a-z]"oldboy.log    打印所有不包含小写字母a-z的行,否定

技术分享

grep "0\{1,9\}"oldboy.log    打印将0字符重复1-9次的行
grep "0\{3\}"oldboy.log    将0重复3次的行
grep "0\{,3\}"oldboy.log    将0重复0-3次的行
grep "0\{4,\}"oldboy.log    将0重复4次以上的行

技术分享

技术分享

技术分享

技术分享

##实例2:取出ifconfigeno167网卡的ip地址

技术分享

(1)sed正则匹配+后向引用

ifconfig eno16777736|sed -n ‘2p‘|sed ‘s#^.*inet ##g‘|sed ‘s# net.*$##g‘
ifconfig eno16777736 |sed -n ‘2‘p |sed -r ‘s#^.*inet (.*)#\1#g‘|sed -r ‘s#(.*) netmask.*$#\1#g‘
ifconfig eno16777736 |sed -n ‘2‘p |sed -r ‘s#^.*inet (.*) netm.*$#\1#g‘
ifconfig eno16777736|sed -nr ‘2s#^.*inet (.*) netmask.*$#\1#gp‘

技术分享

技术分享

(2awk

ifconfig eno16777736|sed -n ‘2p‘|awk ‘{print $2}‘
ifconfig eno16777736 |awk ‘NR==2{print $2}‘

技术分享

技术分享

正则表达式解析 & awk/sed/grep实用实例总结文档

标签:linux   正则表达式   sed   grep   awk   

原文地址:http://jschu.blog.51cto.com/5594807/1852747

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!