正则表达式grep和egrep的用法

grep和egrep的用法

grep: Global search REgular expression and Print out the line. 表示全局正则表达式版本。

grep,egrep是Linux下的文本搜索工具,这三个命令结合正则表达式能发挥强大的文本搜索功能。

正则表达式:由一类字符书写的模式,其中有些字符不表示字符的字面意义,而是表示控制或通配的功能。

正则表达式分为两种:基本正则表达式和扩展正则表达式。

grep一般结合基本正则表达式使用,基本正则表达式的功能和用法如下:

字符匹配类

.:表示匹配任意单个字符。

[]:表示匹配集合中的任意单个字符。

如:[0-9]表示任意单个数字,也可以写成[[:digit:]]。

[a-z]表示任意单个小写字母,也可以写成[[:lower:]]。

[A-Z]表示任意单个大写字母,也可以写成[[:upper:]]。

[a-zA-Z]表示任意单个大写字母或小写字母,也可以写成[[:alpha:]]。

[0-9a-zA-Z]表示任意单个字母或数字,也可以写成[[:alnum:]]。

[[:space:]]表示空格或者TAB。

[[:punct:]]表示任意单个标点。

[^]:匹配指定集合外的任意单个字符。

如:[^0-9]表示除数字外的单个字符,也可以写成[^[:digit:]]。

次数匹配类:用于对其前面紧邻的字符所能够出现的次数作出限定。

*:匹配其前面的字符任意次,0,1或多次;

\?:匹配其前面的字符0次或1次;

\+: 匹配其前面的字符出现至少1次;

\{m\}: 匹配其前面的字符m次;

\{m,n\}:匹配其前面的字符至少m次,至多n次;

.*: 匹配任意长度的任意字符

位置锚定类:

^: 行首锚定,写在模式的最左侧

$: 行尾锚定,写在模式的最右侧

^$: 空白行

\<: 词首锚定,出现在要查找的单词模式的左侧;\<char

\>:词尾锚定, 出现在要查找的单词模式的右侧;char\>

\<pattern\>: 匹配单词

分组:\(\)  后向引用:模式中,如果使用\(\)实现了分组,在某行文本的检查中,如果\(\)的模式匹配到了某内容,此内容后面的模式中可以被引用。

\1, \2, \3 模式自左而右,引用第#个左括号以及与其匹配右括号之间的模式匹配到的内容。

grep命令的参数:

-v: 反向选取,除匹配到的内容外都显示到标准输出。

-o: 仅显示匹配到内容,仅显示匹配到的字符,不显示所在行的其他文字。

-i: 忽略字符大小写。

-E: 使用扩展正则表达式,相当于egrep。

-A #:显示匹配到的内容所在行和下面两行。

-B #显示匹配到的内容所在行和上面两行。

-C #显示匹配到的内容所在行,上面两行和下面两行。

  egrep一般结合扩展正则表达式使用,egrep和grep用法相近,在字符运用上稍有区别扩展正则表达式的功能和用法如下:

字符匹配类

.:表示匹配任意单个字符。

[]:表示匹配集合中的任意单个字符。

如:[0-9]表示任意单个数字,也可以写成[[:digit:]]。

[a-z]表示任意单个小写字母,也可以写成[[:lower:]]。

[A-Z]表示任意单个大写字母,也可以写成[[:upper:]]。

[a-zA-Z]表示任意单个大写字母或小写字母,也可以写成[[:alpha:]]。

[0-9a-zA-Z]表示任意单个字母或数字,也可以写成[[:alnum:]]。

[[:space:]]表示空格或者TAB。

[[:punct:]]表示任意单个标点。

[^]:匹配指定集合外的任意单个字符。

如:[^0-9]表示除数字外的单个字符,也可以写成[^[:digit:]]。

次数匹配类:用于对其前面紧邻的字符所能够出现的次数作出限定。

*:匹配其前面的字符任意次,0,1或多次;

?:匹配其前面的字符0次或1次;

+: 匹配其前面的字符出现至少1次;

{m}: 匹配其前面的字符m次;

{m,n}:匹配其前面的字符至少m次,至多n次;

.*: 匹配任意长度的任意字符

位置锚定类

^: 行首锚定,写在模式的最左侧

$: 行尾锚定,写在模式的最右侧

^$: 空白行

\<: 词首锚定,出现在要查找的单词模式的左侧;\<char

\>:词尾锚定, 出现在要查找的单词模式的右侧;char\>

\<pattern\>: 匹配单词

分组:()  后向引用:模式中,如果使用\(\)实现了分组,在某行文本的检查中,如果\(\)的模式匹配到了某内容,此内容后面的模式中可以被引用。

\1, \2, \3 模式自左而右,引用第#个左括号以及与其匹配右括号之间的模式匹配到的内容。

egrep中grep没有的功能:或者

|:表示或者  如a|b表示a或者b。

ab|cd表示ab或者cd。

egrep命令的参数同grep(除-E外)。

命令运用:

1.       找出/etc/passwd文件中的一位数或两位数。

grep --color=auto ‘\<[[:digit:]]\{1,2\}\>‘   /etc/passwd

egrep --color=auto ‘\<[[:digit:]]{1,2}\>‘  /etc/passwd

  1. 2.       找出用户名和默认shell相同的用户。

grep  ‘\<\([[:alnum:]]\+\)\>.*\1$‘  /etc/passwd

egrep  ‘\<([[:alnum:]]+)\>.*\1$‘  /etc/passwd

  1. 3.       找出/boot/grub/grub.conf中至少一个字符开头的行。

grep ‘^[[:space:]]\+.*‘    /boot/grub/grub.conf

egrep ‘^[[:space:]]+.*‘   /boot/grub/grub.conf

  1. 4.       找出/etc/rc.d/rc.sysinit中,以#开头,后面至少跟一个空白字符,而后又至少有一个非空白字符的行。

grep --color=auto ‘^#[[:space:]]\+[^[:space:]]\+‘   /etc/rc.d/rc.sysinit

egrep --color=auto ‘^#[[:space:]]+[^[:space:]]+‘   /etc/rc.d/rc.sysinit

时间: 2024-11-08 21:18:03

正则表达式grep和egrep的用法的相关文章

Linux正则表达式grep与egrep

Linux正则表达式grep与egrep 正则表达式:它是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.在很多文本编辑器或其他工具里,正则表达式通常被用来检索或替换那些符合某个模式的文本内容.其实正则表达式,只是一种思想,一种表示方法.只要我们使用的工具支持表示这种思想那么这个工具就可以处理正则表达式的字符串.常用的工具有grep, sed, awk,这三个都是针对文本的行才操作的. grep  过滤器语法: grep  [-cinvABC]  'word'  filenam

正则表达式grep和egrep的基本使用

正则表达式grep和egrep的使用 正则表达式(REGular EXPression REGEXP)就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊符号的辅助,可以让用户轻易达到查找.删除.替换某特定字符串的处理程序.正则表达式中的模式(pattern)以正则表达式的元字符,以及正常字符组合而成. 正则表达式的字符串依照不同的严谨度而分为基础正则表达式与扩展正则表达式. 一.基础正则表达式(grep) Grep全称: Global search Regular

正则表达式grep和egrep

          grep.egrep和正则表达式的总结 一.grep的使用 1.grep的解释 grep为global search regularexpression(RE) and print out the line的缩写,即根据用户指定的文本搜索模式对目标文件进行搜索并显示能够被模式匹配到的行的一种文本搜索工具. 2.grep的使用格式 gerp [options]'PATTERN'file,.... 其中PATTERN项需要使用''或者"",如果需要对模式进行转换,则需要

Linux 的正则表达式grep、egrep

阅读目录 简单介绍 正则表达式的一些选项及作用 基本正则表达式 扩展正则表达式 在运维中正则表达式对于笔者来说必须学习和掌握的,它是一个难点!首先它的元字符很多,组合的方法也是各种各样的,当然每个人学习和理解方法不一样,在其中遇到的问题也不一样,在Linux中想学习正则表达式,首先要学会的是grep以及egrep命令的使用 下面我会列出一小部分实例! 简单介绍 grep.egrep是一种文本搜索的工具,可以根据用户指定的模式对目标文本进行搜索过滤,显示出被模式匹配到的行 正则表达式分为两类: 基

grep与正则表达式,grep、egrep和fgrep

grep用法详解:grep与正则表达式 首先要记住的是: 正则表达式与通配符不一样,它们表示的含义并不相同!正则表达式只是一种表示法,只要工具支持这种表示法, 那么该工具就可以处理正则表达式的字符串.vim.grep.awk .sed 都支持正则表达式,也正是因为由于它们支持正则,才显得它们强大:1基础正则表达式grep 工具,以前介绍过.grep -[acinv]   '搜索内容串'   filename-a 以文本文件方式搜索-c 计算找到的符合行的次数-i 忽略大小写-n 顺便输出行号-v

正则表达式grep、egrep、fgrep

日期: 2015年08月27日 正则表达式: (RegularExpression,在代码中常简写为rex.regexp或RE) 正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.通常被用来检索.替换符合某个模式的文本. 正则表达式是指一类字符书写的模式(pattern)这些字符成为元字符,元字符不表示其字面意义,而用于表示通配或控制功能. 正则表达式包括两类:基本正则表达式,扩展正则表达式 grep命令只支持基本正则表达式: egrep支持扩展正则表达式("e" 表

grep、egrep命令用法

何谓正则表达式 正则表达式,又称正规表示法.常规表示法(Regular Expression,在代码中常简写为regex.regexp或RE),是一类字符所书写的模式,其中许多字符不表示其字面意义,而是表达控制或通配等功能.正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本.许多程序设计语言都支持利用正则表达式进行字符串操作. 正则表达式语言由两种基本字符类型组成:原义(正常)文本字符和元字符.元字符使正则

linux中grep和egrep的用法

1. grep简介 grep (global search regular expression_r(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.Unix的grep家族包括grep.egrep和fgrep.egrep和fgrep的命令只跟grep有很小不同.egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字

grep、egrep及相应的正则表达式和用法

一.grep及基本正则表达式 1.grep基本用法        grep  [OPTIONS]  PATTERN  [FILE...]     常用选项: --color=auto:对匹配到的文本着色后高亮显示: -i:忽略字符大小写: -o:仅显示匹配 到的文本自身: -v, --invert-match:反向匹配: -E:支持扩展的正则表达式: -q, --quiet,静默模式,不输出任何信息:   1)首先建立一个test.txt的文本文件   2)然后使用grep和各选项进行匹配搜索: