grep及正则表达式详解

grep正则表达式
1、grep定义

Globally search a Regular Expression and Print
全局搜索(匹配正则表达式的)并打印

扩展命令:
egrep:扩展grep,相当于grep -E 命令,使用扩展正则匹配。
fgrep:fast grep,不支持正则匹配的grep,只能匹配字符本来的意义。

grep与egrep的区别是egrep支持更多扩展的正则

grep参数(#代表数字)
-v:显示不匹配的行
-i:忽略字母大小写
-o:只打印匹配的字符
-E:扩展正则表达式
-A #:显示匹配的行以及匹配行后的#行
-B #:显示匹配的行以及匹配行前的#行
-C #:显示匹配的行以及匹配行前后的各#行
--color:定义匹配字符的颜色
 
     颜色标记匹配的字符
     alias grep=‘grep --color=auto‘
     alias egrep=‘egrep --color=auto‘

永久生效修改文件/etc/bashrc添加上面两行内容

正则表达式

一、字符匹配
. :匹配一个字符
[]:匹配范围内任意单个字符
[^]:匹配范围外任意单个字符

例:
     [0-9]  [[:digit:]] 匹配数字
     [a-z]  [[:lower:]] 匹配小写字母
     [A-Z]  [[:upper:]] 匹配大写字母 
     [[:space:]]  匹配所有空白字符(空格,制表符,新行)
     [0-9a-zA-Z] [[:alnum:]]  匹配字母及数字
     [a-zA-Z]    [[:alpha:]]  匹配字母
     [[:punct:]]  标点符号

二、次数匹配
* :任意次数
 .*:任意长度的任意字符
\?:0次或1次
\+:1次或多次
\{m\}:m次
 \{m,n\}:至少m次,至多n次
 \{0,n\}:至多n次
 \{m,\}:至少m次

三、定位匹配
^:匹配行首
$:匹配行尾
\<,\b:匹配单词词首
\>,\b:匹配单词词尾

四、分组和引用
\(\):小括号内的为一组
\1,\2,……引用分组,1为第一个小括号内容,2为第二个小括号内容……

元字符总结:
正则表达式及grep
     字符匹配:. [] [^]
     次数匹配:* \+ \? \{\}
     定位匹配: ^ $ \< \>
     分组和后向引用:\(\) \1,\2……
 
扩展正则表达式及egrep
     字符匹配:. [] [^]
     次数匹配:* + ? {}
     定位匹配:^ $ \< \>
     分组和后向引用:() \1,\2……
     或者:a|b

例:
1、字符匹配           
     普通字符:# grep ‘root‘ /etc/passwd    
     .:# grep ‘r..t‘ /etc/passwd    
     []:# grep ‘[rt].‘ /etc/passwd     
     [^]:# grep ‘[^a-z]‘ /etc/passwd   
 
2、次数匹配:
     *:# grep ‘ro*t‘ /etc/passwd
     .*:# grep ‘r.*t‘ /etc/passwd
     \+:# grep ‘ro\+t‘ /etc/passwd
     +:# egrep ‘ro+t‘ /etc/passwd
          # grep -E ‘ro+t‘ /etc/passwd
     \?:# grep ‘ro\?t‘ /etc/passwd
     ?:# egrep ‘ro?t‘ /etc/passwd
         # grep -E ‘ro?t‘ /etc/passwd
     \{\}:# grep ‘ro\{2\}t‘ /etc/passwd
             # grep ‘ro\{0,2\}t‘ /etc/passwd
     {}:# egrep ‘ro{2}t‘ /etc/passwd
          # grep -E ‘ro{2}t‘ /etc/passwd
          # egrep ‘ro{0,2}t‘ /etc/passwd
          # grep -E ‘ro{0,2}t‘ /etc/passwd/

3、定位匹配:
     ^:# grep ‘^r‘ /etc/passwd
     $:# grep ‘h$‘ /etc/passwd
     \<:# grep ‘\<ro‘ /etc/passwd
     \>:# grep ‘ot\>‘ /etc/passwd
 
4、分组和引用:
     \(\):# grep ‘^\(\<[a-z]\{4\}\>\).*\1$‘ /etc/passwd
     ():# egrep ‘^(\<[a-z]{4}\>).*\1$‘ /etc/passwd

时间: 2024-08-05 08:25:51

grep及正则表达式详解的相关文章

grep和正则表达式详解

一.Linux上文本处理三剑客 grep:文本过滤(模式:pattern)工具: sed:文本编辑工具: awk:Linux上的实现gawk,文本报告生成器: 二.grep grep:Global search REgular expression and Print out the line,是一款文本过滤(模式:pattern)工具. 作用:文本搜索工具,根据用户指定的"模式"对目标文本逐行进行匹配检查:打印匹配到的行: 模式:由正则表达式字符及文本字符所编写的过滤条件. grep

grep与正则表达式详解(更新中...)

grep作用:使用模式匹配指定文件中的文本,是一款很好用的文本搜索和过滤工具 模式:正则表达式字符以及文本字符编写的过滤条件 正则表达式:由一类特殊字符及文本字符所编写的的模式,其中有些字符不表示字面意义,而表示          控制或者通配功能,分为基本正则表达式和扩展正则表达式两类 grep默认使用基本正则表达式,egrep或者grep -E开启扩展正则表达式 --color=auto:为匹配到的字符着色 -v:反选,显示不能被模式匹配到的行 -F:使用fgrep -P:使用perl语言的

2015年8月27日课程作业(grep,正则表达式详解)

一.作业(练习)内容: 1.总结本此课程中所涉及命令的使用方法及相关示例展示  grep: 文本搜索工具,根据用户指定的文本模式(正则表达元字符及正常字符组成而成)对目标文件进行逐行搜索,显示匹配的行 grep [OPTIONS]... [PATTERN] [FILENAME]... --color=auto    #对匹配到的字符串作高亮显示 -i       #忽略大小写 -v       #仅显示匹配不到行 -O       #仅显示匹配到的字符串 -q       #静默模式 -E  

Linux系统grep及正则表达式详解

1.grep:根据模式搜索文本 并将符合模式的文本行显示出来 文本字符和正则表达式的元字符组合而成匹配条件 grep'root' /etc/passwd搜索/etc/passwd文件中包含有root字符的行显示出来 -i:只显示被模式匹配的行 --color:被模式匹配的行用颜色显示出来 -v:只显示没有被模式匹配的行 -o:只显示被模式匹配到的字符串 2.正则表达式: 元字符: .:表示匹配任意单个字符 grep'r..t' /etc/passwd []:表示匹配指定范围内的任意单个字符 [^

grep正则表达式详解及练习

grep正则表达式详解及练习 一.在学习grep正则表达式前,先了解下linux著名的文本处理三剑客: (1)grep.egrep.fgrep 文本搜索工具. (2)sed     文本编辑工具,一种流编辑器,行编辑工具. (3)awk 强大的文本分析工具,文本格式化工具,文本报告生成器. 以上三大命令均支持正则表达式,本文以grep正则表达式为例展开学习. 1.什么是正则表达式? 正则表达式(Regular Expression):由一类特殊字符及文本字符所编写的模式,其有些字符不表示其字面意

Shell编程之---正则表达式详解

正则表达式详解 普通字符:只是字面的意思 元字符:超过字面意思的意义 基本正则表达式元字符及其意义 * #0个或多个在*字符之前的那个普通字符 .               #匹配任意字符 ^         #匹配行首 $         #匹配行尾 $$ #执行上一条命令 !$ #上一条命令的最后一个参数,例如是/etc/passwd,继续对该参数操作,可以为 cat !$ []        #匹配字符集合 \          #转义符 \{n\}      #匹配前面字符出现n次 \

Linux 正则表达式详解

正则表达式(REGULAR):为处理大量的字符串而定义的一套规则和方法,为了处理大量字符串而生 常见命令参数 基础正则表达式 . :有且只有任意一个字符(包括空格) * :重复前面任意0或者多个字符 .*:匹配任意字符==>所有,包括空格 \ :转义字符,让有意义的字符,显示原型 \$ --> $本身 ^ :^d 以d开头的文件 $ :/$ 以/结尾的文体 ^$:表示空行 grep -vn "^$" h.txt -->不显示空行 -n 显示行号 sed -r 's#(

python正则表达式详解

python正则表达式详解 正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能不一样,不过只要学会了任意一门语言的正则表达式用法,其他语言中大部分也只是换了个函数的名称而已,本质都是一样的.下面,我来介绍一下python中的正则表达式是怎么使用的. 首先,python中的正则表达式大致分为以下几部分: 元字符 模式 函数 re 内置对象用法 分组用

PHP正则表达式详解(一)

前言: 半年前我对正则表达式产生了兴趣,在网上查找过不少资料,看过不少的教程,最后在使用一个正则表达式工具RegexBuddy时,发现他的教程写的非常好,可以说是我目前见过最好的正则表达式教程.于是一直想把他翻译过来. 本文是Jan Goyvaerts为RegexBuddy写的教程的译文,版权归原作者所有,欢迎转载.但是为了尊重原作者和译者的劳动,请注明出处!谢谢! 1.什么是正则表达式 基本说来,正则表达式是一种用来描述一定数量文本的模式.Regex代表Regular Express.本文将用