Linux中的文本搜索工具grep与egrep的用法
2017-01-14 11:38
232 查看
grep和egrep
grep(全称:Globally search aRegular Expression and Print)是Linux中的一种文本搜索工具,用于显示用户指定的文本模式在目标文本中匹配的行。egrep是当其使用扩展正则表达式来匹配字符时的另一种表示模式,相当于grep –E。下面,分别讲grep的基本使用方法以及相关的基础正则表达式与扩展正则表达式。
一、grep的基本用法
格式:grep [option]… ‘PATTEN’ [file](做变量换算时需要使用双引号)
默认只支持基本正则表达式,要匹配基本正则表达式之外的文本模式,需使用grep -E
常用选项:
--color 指定颜色
-v 反向选择
-o 仅匹配被模式匹配到的字符串
-i 不区分大小写
-E 匹配扩展正则表达式文本模式
-A #:还显示模式匹配到的下面#行(#表示数字)
-B #:还显示模式匹配到的上面#行
-C #:还显示模式匹配到的前后#行
二、附录:
一)基础正则表达式
基础正则表达式之元字符:
.:任意字符
[ ]:指定范围内的任意单个字符
所有数字:[0-9],[[:digit:]]
所有小写字母:[a-z],[[:lower:]]
所有大写字母:[A-Z],[[:upper:]]
所有的字母:[[:alpha]]
所有的字母+数字:[[:alnum:]]
空格:[[:space:]]
标点符号:[[:putct:]]
指定范围外:[^]
基础正则表达式之次数匹配:
*:任意次
.*:匹配任意字符任意次
\?:匹配前面的字符0次或者1次
\{m\}:匹配m次
\{m,n\}:匹配至少m次,至多n次
\{m,\}:匹配至少m次
\{0,n\}:匹配至多n次
基础正则表达式之位置锚定:指定字符出现的位置
^Char:锚定行首
Char$:锚定行尾
^$:锚定空白行
基础正则表达式之单词的位置锚定
\<char,\b:锚定词首
Char>\,b\:锚定词尾
基础正则表达式之分组和引用:
\(char\).*\1:后向引用,引用前面的第一个左括号以及与之对应的右括号中的模式匹配到的内容。意思是,前面出现一次,在\1这也要出现一次。当数字1变成2时表示第二个左括号以及与之对应的右括号中的模式匹配到内容。
示例如下:
二)扩展正则表达式:
扩展正则表达式之字符匹配:
.:任意单个字符
[ ]:指定范围内的任意单个字符
[^]:指定范围外的任意单个字符
扩展正则表达式之次数匹配:
*:匹配前面的字符任意次
?:匹配前面的字符0或者1次
+:匹配前面的字符至少1次
{m}:匹配前面的字符m次
{m,n}:匹配前面的字符至多n次,至少m次
{0,n}:匹配前面的字符至多n次
扩展正则表达式之分组:
(char)\1:分组和后向引用
|:或者
示例一:
示例二:
grep(全称:Globally search aRegular Expression and Print)是Linux中的一种文本搜索工具,用于显示用户指定的文本模式在目标文本中匹配的行。egrep是当其使用扩展正则表达式来匹配字符时的另一种表示模式,相当于grep –E。下面,分别讲grep的基本使用方法以及相关的基础正则表达式与扩展正则表达式。
一、grep的基本用法
格式:grep [option]… ‘PATTEN’ [file](做变量换算时需要使用双引号)
默认只支持基本正则表达式,要匹配基本正则表达式之外的文本模式,需使用grep -E
常用选项:
--color 指定颜色
-v 反向选择
-o 仅匹配被模式匹配到的字符串
-i 不区分大小写
-E 匹配扩展正则表达式文本模式
-A #:还显示模式匹配到的下面#行(#表示数字)
-B #:还显示模式匹配到的上面#行
-C #:还显示模式匹配到的前后#行
二、附录:
一)基础正则表达式
基础正则表达式之元字符:
.:任意字符
[ ]:指定范围内的任意单个字符
所有数字:[0-9],[[:digit:]]
所有小写字母:[a-z],[[:lower:]]
所有大写字母:[A-Z],[[:upper:]]
所有的字母:[[:alpha]]
所有的字母+数字:[[:alnum:]]
空格:[[:space:]]
标点符号:[[:putct:]]
指定范围外:[^]
基础正则表达式之次数匹配:
*:任意次
.*:匹配任意字符任意次
\?:匹配前面的字符0次或者1次
\{m\}:匹配m次
\{m,n\}:匹配至少m次,至多n次
\{m,\}:匹配至少m次
\{0,n\}:匹配至多n次
基础正则表达式之位置锚定:指定字符出现的位置
^Char:锚定行首
Char$:锚定行尾
^$:锚定空白行
基础正则表达式之单词的位置锚定
\<char,\b:锚定词首
Char>\,b\:锚定词尾
基础正则表达式之分组和引用:
\(char\).*\1:后向引用,引用前面的第一个左括号以及与之对应的右括号中的模式匹配到的内容。意思是,前面出现一次,在\1这也要出现一次。当数字1变成2时表示第二个左括号以及与之对应的右括号中的模式匹配到内容。
示例如下:
二)扩展正则表达式:
扩展正则表达式之字符匹配:
.:任意单个字符
[ ]:指定范围内的任意单个字符
[^]:指定范围外的任意单个字符
扩展正则表达式之次数匹配:
*:匹配前面的字符任意次
?:匹配前面的字符0或者1次
+:匹配前面的字符至少1次
{m}:匹配前面的字符m次
{m,n}:匹配前面的字符至多n次,至少m次
{0,n}:匹配前面的字符至多n次
扩展正则表达式之分组:
(char)\1:分组和后向引用
|:或者
示例一:
示例二:
相关文章推荐
- linux中grep和egrep的用法
- linux正则表达式 grep egrep用法
- Linux基础 grep egrep fgrep 区别及用法
- Linux基础:shell中正则表达式grep,egrep的基础用法
- Linux_指令_grep,egrep 用法--参数大全
- linux正则表达式 grep egrep用法
- linux基本命令grep egrep fgrep用法以及正则表达式
- Linux中的grep、egrep及相应的正则表达式和用法
- Linux grep,egrep及相应的正则表达式用法详解
- Linux正则表达式的使用和基本命令grep、egrep、fgrep的用法
- linux中grep和egrep的用法1
- linux基本命令grep egrep fgrep用法以及正则表达式
- linux下grep、egrep及相应的正则表达式和用法
- linux正则表达式 grep egrep用法
- Linux中grep,egrep正则表达式基本用法
- Linux正则表达式grep,egrep 及相应的正则表达式用法详解
- linux中grep和egrep的用法
- linux正则表达式 grep egrep用法
- linux基本命令grep egrep fgrep用法以及正则表达式
- Linux基础知识之正则表达式、grep、egrep的用法