grep、egrep、fgrep正则表达式
grep:跟据模式(Pattern)搜索文本,并将符合模式的文本行显示出来。 egrep( grep -E ):可以使用扩展正则表达式,并将符合模式的文本行显示出来 fgrep:执行速度最快,但是不支持正则表达式 Pattern: 文本字符和正则表达式的元字符组合而成匹配条件 基本格式:grep [options] PATTERN [FILE...] [options]常用参数 -i 不区分大小写 --color 匹配到的用颜色标记出来 -v: 显示没有被模式匹配到的行 -o: 只显示被模式匹配到的字符串 -E 使用扩展的正则表达式,等同于"egrep"命令 -B[N] 匹配到的前N行 -A[N] 匹配到的后N行 正则表达式:REGular EXPression,REGEXP(分为基本正则表达式和扩展正则表达式) 元字符(基本正则表达式):grep支持的元字符 . 匹配任意单个字符 * 匹配紧挨其前面的字符任意次 .* 匹配任意长度的任意字符 ? 匹配紧挨其前面的字符0次或则1次,需要转义字符“” [] 匹配制定范围内的任意单个字符(字符集合:[:digit:],[:lower:],[:upper:],[:punct:],[:space:],[:alpha:],[:alnum:]) [^] 匹配制定范围外的任意单个字符 {m,n} 匹配其前面的字符至少m次,至多n次(n可省略{m,}) ^ 锚定行首,此字符后面的任意内容必须出现在行首 $ 锚定行尾,此字符后面的任意内容必须出现在行尾 ^$ 匹配空白行 &;或b 锚定词首,其后面的任意字符必须作为单词首部出现 &;或b 锚定词尾,其后面的任意字符必须作为单词尾部出现 &;...&;或b...b 同时锚定词首词尾 () 分组,可做后向引用(如1: 引用第一个左括号以及与之对应的右括号所包括 的所有内容) 元字符(扩展正则表达式):egrep、grep -E支持的元字符 和基本表达式重叠之处不在列出 ? 匹配紧挨其前面的字符0次或则1次,不需要转义字符 {m,n} 匹配其前面的字符至少m次,至多n次 不需要转义字符 {m} 精确匹配其前面的字符m次 () 用于分组,同样不需要转义字符 + 匹配其前面的字符至少1次 | 或则,匹配其前面或者后面的字符 简单示例: 显示/proc/meminfo文件中以不区分大小的s开头的行: [root@localhost~]#grep-i"^s"/proc/meminfo 或者[root@localhost~]#grep"^[sS]"/proc/meminfo
显示/etc/passwd中以nologin结尾的行: [root@localhost~]#grep"nologin$"/etc/passwd 显示/etc/inittab中以#开头,且后面跟一个或多个空白字符,而后又跟了任意非空白字符的行: [root@localhost~]#grep"^#[[:space:]]{1,}[^[:space:]]"/etc/inittab 或则[root@localhost~]#egrep"^#[[:space:]]+[^[:space:]]"/etc/inittab 显示/etc/inittab中包含了:一个数字:(即两个冒号中间一个数字)的行: [root@localhost~]#grep":[0-9]:"/etc/inittab 显示/boot/grub/grub.conf文件中以一个或多个空白字符开头的行 [root@localhost~]#grep'^[[:space:]]{1,}'/boot/grub/grub.conf 或则[root@localhost~]#egrep'^[[:space:]]+'/boot/grub/grub.conf 显示/etc/inittab文件中以一个数字开头并以一个与开头数字相同的数字结尾的行: [root@localhost~]#grep"^([0-9]).*1$"/etc/inittab 或则[root@localhost~]#egrep"^([0-9]).*1$"/etc/inittab
找出/boot/grub/grub.conf文件中1-255之间的数字: [root@localhost~]#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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |