简述正则与grep
正则表达式的定义: 计算机科学中,有一种使用单个字符串来描述、匹配一系列符合某个句法规则的字符串,它就叫做正则表达式。 正则表达式的功用: 在文本编辑器中,正则表达式通常被用来检索、替换那些符合某个模式的文本。许多程序设计语言中,也都支持正则表达式来进行字符串的操作。因此它被广泛应用到各种计算机语言和领域中。 正则表达式的分类: 正则表达式就其表现形式来说,一般分为两类。基本的正则表达式和扩展的正则表达式。下面我们就此展开说明: 基本正则表达式: 字符匹配: .匹配任意单个字符 []匹配指定范围内的任意单个字符 [0-9],[[:digit:]]所有数字 [a-z],[[:lower:]]所有小写字母 [A-Z],[[:upper:]] 所有大写字母 [[:space:]] 空格 [[:punct:]] 所有标点符号 [[:alpha:]] 所有字母 [[:alnum:]] 所有数字和字母 [^]取反 .*匹配任意长度的任意字符 次数匹配: *前面字符可出现任意次 ?前面字符可出现0次或1次 {m}前面字符要出现m次 {m,n}前面字符至少出现m次,至多出现n次 {m,}前面字符至少出现m次 {0,n}前面字符至多出现n次 位置锚定: ^锚定行首 $锚定行尾 ^$空白行 &;锚定词首 &;锚定词尾 分组引用: ()分组 #引用 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 扩展正则表达式: 字符匹配: .匹配任意单个字符 []匹配指定范围内的任意单个字符 [0-9],[[:digit:]]所有数字 [a-z],[[:lower:]]所有小写字母 [A-Z],[[:upper:]] 所有大写字母 [[:space:]] 空格 [[:punct:]] 所有标点符号 [[:alpha:]] 所有字母 [[:alnum:]] 所有数字和字母 [^]取反 .*匹配任意长度的任意字符 次数匹配: *前面字符可出现任意次 ?前面字符可出现0次或1次 +前面字符至少出现1次 {m}前面字符要出现m次 {m,n}前面字符至少出现m次,至多出现n次 {m,}前面字符至少出现m次 {0,n}前面字符至多出现n次 位置锚定: ^锚定行首 $锚定行尾 ^$空白行 &;锚定词首 &;锚定词尾 分组引用: ()分组 #引用 或者: #|n或者 --------------------------------------------------------------------------------------------------------------------------------- grep的定义: grep全称global search regular expression and print out the line,即全面搜索正则表达式并把行打印出来。 grep的功用: grep是一种强大的文本搜索工具,能使用正则表达式搜索文本,并把匹配的行打印出来。 grep家族的分类: Unix的grep家族包括grep、egrep和fgrep。egrep是grep的扩展,支持更多的正则元字符。而fgrep是fixed grep或fast grep,是把所有的字母都看作单词,所以它不再支持正则表达式的应用。 grep的选项: -v反向选取 -o仅显示匹配的字串,而非字串所在的行 -iignore-case,忽略字符大小写 -E支持使用扩展正则表达式 -A #显示后面#行 -B #显示前面#行 -C #显示前后#行 --color=auto将匹配内容自动添加颜色 --------------------------------------------------------------------------------------------------------------------------------- 实例: 1.显示/proc/meminfo文件中以大写或小写S开头的行; grep -i '^s' /etc/passwd 2.显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户; grep -v "/sbin/nologin$" /etc/passwd | cut -d: -f1 3.找出/etc/passwd文件中的一位数或两位数; grep "&;[0-9][0-9]?&;" /etc/passwd 4.显示/boot/grub/grub.conf中以至少一个空白字符开头的行; grep "^[[:space:]]{1,}" /boot/grub/grub.conf (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |