grepegrep及相应的正则表达式和用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了grepegrep及相应的正则表达式和用法相关的知识,希望对你有一定的参考价值。
一、grep及基本正则表达式
1、grep基本用法
grep [OPTIONS] PATTERN [FILE...]
常用选项:
--color=auto:对匹配到的文本着色后高亮显示;
-i:忽略字符大小写;
-o:仅显示匹配 到的文本自身;
-v, --invert-match:反向匹配;
-E:支持扩展的正则表达式;
-q, --quiet,静默模式,不输出任何信息;
1)首先建立一个test.txt的文本文件
2)然后使用grep和各选项进行匹配搜索:
--color=auto:对匹配到的文本着色后高亮显示
-i:忽略字符大小写
-o:仅显示匹配到的文本自身,而不会显示行
-v,反向匹配
-q, 静默模式,不输出任何信息;
2、基本正则表达式
正则表达式就是一类字符所书写出的模式(pattern),来处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊称号的辅助,可以让用户轻易达到查找、删除、替换某特定字符串的处理程序。
元字符:不表示字符本身的意义,用于额外功能性的描述。
1)字符匹配:
.:匹配任意单个字符
注意:空格也属于字符,这里的“old”前边有空格所以也匹配到了。
[ ]:匹配范围内的任意单个字符;
[^ ]:匹配范围外的任意单个字符;
[:digit:]:数字字符"0-9"
[:lower:]:小写字母字符"a-z"
[:upper:]:大写字母字符"A-Z"
[:alpha:]:字母字符"A-Za-z"
[:alnum:]:字母字符"A-Za-z"和数字字符"0-9"
[:space:]:代表的是空白字符,包括空格键[Tab]等
2)次数匹配
* :匹配其前面的字符任意次
.*:匹配任意长度的任意字符,0次或多次
\?:匹配其前面的字符可有可无(即0次或1次)
\{m\}:匹配m次 这里的\代表转义字符,扩展正则表达式中不用
\{m,n\}:匹配最少m次,最多n次
\{m,\}:匹配至少m次
\{0,n\}:匹配至多n次
3)位置锚定: 用于指定字符出现的位置
^:托字符,锚定行首,
注意与匹配范围外的任意单个字符的[^ ]进行区分尤其是语句中含有像[:digit:]这类集 合时需特别注意。
$:锚定行尾
^$:既是行首,又是行尾,即空白行
注意:这里为了显示效果,使用管道和wc命令直接输出了空白行的行数。
\<:锚定词首 \<char \bchar 这里的\依然是转义
\>:锚定词尾 char\> char\b
\<char\>:既锚定词首又锚定词尾,即锚定某个单词。
4)分组和引用
\(\) \给括号转义
将括号中模式匹配到的字符会被记录于正则表达式引擎内部的变量中,然后通过\1或\2等来前向 引用,引用前面的第1个或第2个左括号以及与之对应的右括号中的模式所匹配到的内容。
二、egrep及扩展正则表达式
1、egrep基本用法
egrep [OPTIONS] PATTERN [FILE...]
常用选项:
--color=auto:对匹配到的文本着色后高亮显示;
-i:忽略字符大小写;
-o:仅显示匹配 到的文本自身;
-v, --invert-match:反向匹配;
-q, --quiet,静默模式,不输出任何信息;
2、扩展正则表达式
字符匹配的命令和用法与基本正则表达式的用法相同,这里不再重复阐述,但要注意以下两 点:
a:在扩展正则表达式中不需要转义符\,但锚定词首词尾还需要有
b: 扩展正则表达式中增加或者|
元字符:
1)字符匹配:
.:任意单个字符
[]:指定范围内的任意单个字符
[^]:指定范围外的任意单个字符
2)次数匹配:
*:匹配其前面的字符任意次
?:匹配其前面的字符0次或1次
+:匹配其前面的字符1次或多次
{m}:匹配其前面的字符m次
{m,n}:至少m次,至多n次
{m,}:至少m次
{0,n}:至多n次
3)锚定:
^:锚定行首
$:锚定行尾
\<:锚定词首 \b
\>:锚定词尾 \b
4)分组及前向引用:
5)或者 基本正则表达式中没有|
实例还以上面的test.txt文件为例,找出以S或s开头的单词:
本文出自 “zero” 博客,请务必保留此出处http://m18065zero.blog.51cto.com/15498/1750728
以上是关于grepegrep及相应的正则表达式和用法的主要内容,如果未能解决你的问题,请参考以下文章