正则表达式介绍及grep的使用
正则表达式介绍及grep的使用 一、正则表达式介绍 1、什么是正则表达式 正则表达式就是处理字符串的方法,它是以行为单位,通过一些特殊符号的辅助,以及相应的工具来快速搜索某指定的字符串。日常中支持正则表达式的常用工具有vi、grep、awk、sed等。 2、正则表达式用途 1)可以帮组系统管理员快速处理分析日常登录信息,相关服务的运行日志等; 2)方便文档编辑 3、正则表达式分类 1)基本正则表达式 2)扩展正则表达式 二、基本正则表达式 1、字符匹配 .:匹配任意单个字符 []:匹配指定集合中的任意单个字符 [^]:匹配指定集合外的任意单个字符 2、匹配次数 *:匹配其前面的字符任意次 ?:匹配其前面的字符0次或1次 +:匹配其前面的字符出现至少1次 {m}:匹配其前面的字符m次 {m,n}:匹配其前面的字符至少m次,至多n次 .*:匹配任意长度的任意字符 3、位置锚定符号 ^:行首锚定 $:行尾锚定 ^$:空白行 &;:词首锚定(可使用b) &;:词尾锚定(可使用b) 4、分组 ():后向引用 模式中,如果使用()实现了分组,在某行文本的检查中,如果()的模式匹配到了某内容,此内容在后面的模式中可以被引用; 使用1,2等进行引用 5、常用的特殊符号 [[:digit:]],[0-9]代表数字 [[:lower:]],[a-z]代表小写字符 [[:upper:]],[A-Z]代表大写字符 [[:alpha:]],[a-zA-Z]代表任意英文大小写字符 [[:alnum:]],[0-9a-zA-Z]代表英文大小写字符及数字 [[:space:]]代表空白字符 [[:punct:]]代表标点符号 三、扩展正则表达式 1、字符匹配 与基本正则表达式一样 2、匹配次数 *:匹配其前面的字符任意次 ?:匹配其前面的字符0次或1次 +:匹配其前面的字符至少1次 {m}:匹配其前面的字符m次 {m,n}:匹配其前面的字符至少m次,至多n次 3、位置锚定符号 与基本正则表达式一样 4、分组 ():后向引用 四、grep的使用 1、语法格式 grep [option] 'pattern'filename 2、常用选项 -v:方向选取 -o:仅显示匹配到内容 -i:忽略字符大小写 -E:使用扩展正则表达式 -n:显示行号 -A#:同时显示出后面的#行 -B#:同时显示出前面的#行 -C#:同时显示出前面的#行,后面的#行 五、egrep的使用 1、语法格式 egrep 'pattern' filename或者grep -E 'pattern' filename 六、实例演示 1、显示/etc/passwd中含有root关键字并显示行号 # grep -n 'root' /etc/passwd 2、显示/proc/meminfo文件中以大写或小写S开头的行 # grep -i '^s' /proc/meminfo 3、显示/etc/fstab中非注释行 # grep -v "^#" /etc/fstab 4、显示/boot/grub/grub.conf中以至少一个空白字符开头的行 # grep "^[[:space:]]{1,}" /boot/grub/grub.conf (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |