linux正则匹配版本号,Linux基础之正则表达式

1、grep: Global searchREgular expression and Print out tht line

文本搜索工具,根据用户指定的模式对目标文本进行逐行匹配检查;打印匹配到的行

模式:由正则表达式字符及文本字符所编写的过滤条件

选项:

–color=auto 对匹配到的文本着色显示

-v 显示没有被匹配到的行

-i 忽略大小写匹配

-n 显示匹配到的行号

-c 统计匹配到的行总数

-o 仅显示匹配到的字符串

-q 静默模式,不输出任何信息

-A #: 同时显示匹配行后的#行

-B #: 同时显示匹配行前的#行

-C #: 同时显示匹配行前后的#行

-e 实现多选项之间的逻辑或关系(grep -e ‘cat’ -e ‘dog’ file)

-w 匹配整个单词 -E egrep -F fgrep

2、正则表达式

规则查看: man 7 regex

元字符分类:字符匹配、匹配次数、位置、分组

字符匹配:

. 匹配任意单个字符

[] 匹配指定范围内的任意单个字符   [^] 匹配指定范围外的任意单个字符

[:lower:] 小写字母

[:upper:]

[:alpha:]

[:digit:] 十进制数字

[:alnum:] 字母和数字

[:xdigit:] 十六进制数字

[:blank:] 空白字符(空格和制表符)

[:space:] 水平和垂直的空白字符

[:cntrl:] 不可打印的控制字符

[:graph:] 可打印的非空白字符

[:print:] 可打印字符

[:punct:] 标点符号

匹配次数:

* 匹配前面的字符任意次,贪婪模式:尽可能长的匹配 (.* 匹配任意长度的任何字符)

\? 匹配前面的字符0或1次

\+ 匹配前面的字符至少一次

\{n\} 匹配前面的字符n次  \{n,m\} 匹配前面的字符n-m次  \{,m\}  \{n,\}

位置锚定:定位字符出现的位置

^ 行首;$ 行尾 (^$ 空白行; ^pattern$ 模式匹配整行 ;^[[:space:]]$ 空白行)

\

\ 匹配整个单词)

分组: \(pattern\),将括号中的模式当作一组进行处理。分组括号中的模式匹配到的内容会被正则表式引擎记录于内部的变量中,这些变量的命名方式为:\1 \2 \3 。\1 表示从左侧起第一个左括号以及与之匹配的右括号之间的内容

后向引用:引用前面分组括号中模式匹配到的内容,并非模式本身

逻辑: \| 或

示例: 用到正则表达式的匹配模式需要用引号引起来

1、获得本机的ip地址

ifconfig eth0|grep “inet addr”|egrep -o “([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}”|head -1

ifconfig eth0|grep “inet addr”|egrep -o “.*Bcast:”|egrep -o “\b[[:digit:]\.]*\b”

更准确的取法: ifconfig eth0|grep “inet addr”|egrep -o “(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])”

2、查找centos6中的系统用户,输出起用户名和uid

cut -d: -f1,3 /etc/passwd|grep -E “(\b[0-9]|[1-9][0-9]|[1-4][0-9][0-9])$”

3、查找centos系统的主版本号:

grep -o ” [0-9]” /etc/centos-release|tr -d  ” “

4、找出//etc/passwd中用户名和shell同名的行

grep ‘^\([^:]*\)\b.*\/\1$’ /etc/passwd

5、取路径的基名

echo “/etc/rc.d/init.d/” |egrep -o “[^/]*/?$”|tr -d “/”

6、取路径名

echo “/etc/rc.d/init.d/” |egrep -o “.*[^/]+”|egrep -o “.*/”|egrep -o “.*[^/]+”

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/86694

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值