Linux基础入门及系统管理01-Shell三剑客之egrep及扩展正则表达式15
2014-04-14 09:56
1021 查看
一、正则表达式
1、Basic RegExp:基本正则表达式;
a)元字符:
., [], [^];
b)次数匹配:
*, \?, \{m,n\}, .*;
c)位置锚定:
^, $, \<或(\b), \>或(\b);
d)分组:
\(\), \1, \2, \3,……;
e)grep:-i, -v, -o, --color;
-E:使用扩展正则表达式;
-A:显示匹配行后的行数,如:grep -A 2 'cpu MHz' /proc/cpuinfo;
-B:显示匹配行前的行数,如:grep -B 2 'cpu MHz' /proc/cpuinfo;
-c:显示匹配行的前后行数,如:grep -C 2 'cpu MHz' /proc/cpuinfo;
2、Extened RegExp:扩展正则表达式(grep -E=egrep);
a)元字符:., [], [^],与基本正则表达式相同;
b)次数匹配:*, ?, 与基本正则表达式相同;
+:匹配其前面的字符至少1次,如:grep -E '^[[:space:]]+' /boot/grub.conf;
{m,n}:匹配至少m次,至多n次;
c)位置锚定:^, $, \<, \>,与基本正则表达式相同;
d)分组:(), \1, \2, \3,……;
e)或者,||:or;
练习:
1、找出/proc/cpuinfo文件中的,1位数或2位数;
2、找出/boot/grub/grub.conf文件中的1-255之间的整数;
3、查找当前系统上名字为student(必须出现在行首)的用户的帐号的相关信息,文件为/etc/passwd;
4、找到ifconfig命令中显示的IP地址;
5、获取ifconfig命令显示的IP地址;
6、获取ifconfig命令显示的IPv4地址;
参考答案:
1、grep --color '\<.*[0-9]\{1,2\}\>' /proc/cpuinfo;
2、egrep --color '\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>' /boot/grub/grub.conf;
3、grep --color ‘^student\>’ /etc/passwd或者grep '^\<student\>' /etc/passwd;
4、ifconfig | egrep -o --color '\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>';
5、# ifconfig | egrep --color '\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.
([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.
([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.
([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>' ;
或者
# ifconfig | egrep --color '
(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){3}\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>' ;
6、# ifconfig | egrep --color
'\<[1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-1][0-9]|22[0-3]\>\.{2}\.\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>' ;
二、IPV4
5类:A B C D E,可用的有三类:
1、A类:1-127
2、B类:128-191
3、C类:192-223
三、fgrep:不支持正则表达式 。
本文出自 “Jessen Liu的博文” 博客,请务必保留此出处http://zkhylt.blog.51cto.com/3638719/1395099
1、Basic RegExp:基本正则表达式;
a)元字符:
., [], [^];
b)次数匹配:
*, \?, \{m,n\}, .*;
c)位置锚定:
^, $, \<或(\b), \>或(\b);
d)分组:
\(\), \1, \2, \3,……;
e)grep:-i, -v, -o, --color;
-E:使用扩展正则表达式;
-A:显示匹配行后的行数,如:grep -A 2 'cpu MHz' /proc/cpuinfo;
-B:显示匹配行前的行数,如:grep -B 2 'cpu MHz' /proc/cpuinfo;
-c:显示匹配行的前后行数,如:grep -C 2 'cpu MHz' /proc/cpuinfo;
2、Extened RegExp:扩展正则表达式(grep -E=egrep);
a)元字符:., [], [^],与基本正则表达式相同;
b)次数匹配:*, ?, 与基本正则表达式相同;
+:匹配其前面的字符至少1次,如:grep -E '^[[:space:]]+' /boot/grub.conf;
{m,n}:匹配至少m次,至多n次;
c)位置锚定:^, $, \<, \>,与基本正则表达式相同;
d)分组:(), \1, \2, \3,……;
e)或者,||:or;
练习:
1、找出/proc/cpuinfo文件中的,1位数或2位数;
2、找出/boot/grub/grub.conf文件中的1-255之间的整数;
3、查找当前系统上名字为student(必须出现在行首)的用户的帐号的相关信息,文件为/etc/passwd;
4、找到ifconfig命令中显示的IP地址;
5、获取ifconfig命令显示的IP地址;
6、获取ifconfig命令显示的IPv4地址;
参考答案:
1、grep --color '\<.*[0-9]\{1,2\}\>' /proc/cpuinfo;
2、egrep --color '\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>' /boot/grub/grub.conf;
3、grep --color ‘^student\>’ /etc/passwd或者grep '^\<student\>' /etc/passwd;
4、ifconfig | egrep -o --color '\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>';
5、# ifconfig | egrep --color '\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.
([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.
([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.
([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>' ;
或者
# ifconfig | egrep --color '
(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){3}\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>' ;
6、# ifconfig | egrep --color
'\<[1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-1][0-9]|22[0-3]\>\.{2}\.\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>' ;
二、IPV4
5类:A B C D E,可用的有三类:
1、A类:1-127
2、B类:128-191
3、C类:192-223
三、fgrep:不支持正则表达式 。
本文出自 “Jessen Liu的博文” 博客,请务必保留此出处http://zkhylt.blog.51cto.com/3638719/1395099
相关文章推荐
- Linux基础入门及系统管理01-Shell三剑客之grep及正则表达式14
- Linux基础入门及系统管理01-shell三剑客之sed命令技巧讲解20
- Linux基础入门及系统管理01-bash脚本编程之五字符串测试及for循环21
- Linux基础入门及系统管理01-bash脚本编程之一变量、变量类型等16
- linux基础(二)系统结构、文件管理、正则表达式
- Linux基础入门及系统管理01-Linux操作系统权限及权限管理12
- Linux基础入门及系统管理01-计算机原理01
- Linux基础入门及系统管理01-bash脚本编程之四文件测试及特殊变量19
- Linux基础入门及系统管理01-Linux操作系统及常用命令04
- Linux基础:shell中正则表达式grep,egrep的基础用法
- Linux基础入门及系统管理01-Linux系统基础深入讲解02
- Linux基础入门及系统管理01-Linux系统基础深入讲解03
- Linux基础入门及系统管理01-Linux运维核心技能-bash基础特性详解09
- Linux基础入门及系统管理01-Linux运维必备知识-用户及权限详解10
- Linux基础入门及系统管理01-Linux文件管理命令详解07
- Linux基础入门及系统管理01-Linux用户管理命令详解11
- 2017-12-16Linux基础知识(17)egrep扩展正则表达式
- Linux基础入门及系统管理01-Linux操作系统及常用命令05
- Linux基础入门及系统管理01-bash脚本编程之三整数测试及算术运算18
- Linux基础入门及系统管理01-Linux文件系统管理及IO重定向13