8_Shell语言———扩展正则表达式和egrep、fgrep命令

egrep命令等同于 grep命令加上 -E选项,它支持扩展的正则表达式。

扩展正则表达式和基本正则表达式类似,不同之处在于增加了一些新功能,部分元字符的用法也略有不同:

.:任意单个字符

[]:指定范围内的任意单个字符

[^]:取反

*:匹配其前的字符0次、1次或多次

?:0次或1次

{m,n}:至少m次,至多n次

\<:词首锚定

\>:词尾锚定

^:行首锚定

$:行尾锚定

———————————上述部分和基本正则表达式一致————————

+:匹配其前的字符至少一次,等同于\{1,\}

注意:使用grep -E 或egrep时,+前面不能有\,但使用grep时,需要带上\,且基本正则表达式不一定支持+

|:或者,如a|b

如查找 /proc/meminfo 文件中含有 s或S的行:

# grep -E “s|S” /proc/meminfo

# egrep “s|S” /proc/meminfo

():分组,支持引用 \1,\2, 注意小括号前面不需要再加\进行转义了

^锚定行首符号若用在上述例子中会导致歧义

# egrep “^s|S” /proc/meminfo      // 这里不表示查找以s或S开头的行,

// 而是表示查找以s开头,或者是查找含有S的行

若要用^锚定行首,来查找以s或S开头的行,可以使用()进行分组:

# egrep “^(s|S)” /proc/meminfo

再举一个例子:

# egrep “c|Cat” egrep.txt// 不表示查找含有cat或Cat,而是查找含有c或Cat

# egrep “(c|C)at” egrep.txt

fgrep命令也是grep命令的一种扩展形式,它不进行模式匹配,所有的元字符都当做普通字符来用,因此搜索速度非常快。

8_Shell语言———扩展正则表达式和egrep、fgrep命令

时间: 2024-11-09 00:32:14

8_Shell语言———扩展正则表达式和egrep、fgrep命令的相关文章

通配符和正则表达式-grep,egrep,fgrep

通配符和正则表达式-grep,egrep,fgrep 通配符和正则表达式,通配符用于文件名匹配,命令支持ls,cp,rm等;正则为通用匹配,命令支持grep,awk,sed,vi,find等.文本过滤工具grep,egrep,fgrep 通配符 *  匹配零个或多个任意字符 ?  匹配单个任意字符 [] 匹配指定范围内的一个字符,[]括号中的 字符间隔符 可以省略,如,\=:等等.举例[1:2=3,5\7] = [12357],也推荐使用这种省略写法作为标准 ^  取反,表示非.注意:非数字即包

Linux中的正则表达式 grep egrep fgrep

正则表达式: REGEXP REGuler EXPression,使用元字符和其他字符串来描述.匹配一系列符合某个句法规则的字符串.默认尽可能长得匹配(贪婪模式). 元字符: .:匹配任意单个字符(文件名通配中?表示任意单个字符) []:匹配指定范围内的单个字符 [^]:匹配指定范围外的单个字符 [:space:]:空白字符 [:puntt:]:所有标点符号 [:upper:]:所有大写字母 [:lower:]:所有小写字母 [:alpha:]:所有大小写字母 [:digit:]:所有数字 [:

五. 正则表达式grep, egrep, fgrep

grep,egrep,fgrep : print lines matching a pattern 1.grep : grep [options] PATTERN FILE... PATTERN由元字符和和普通字符组成 -i : --ignore-case , 忽略大小写 -o : --only-matching, 只显示所匹配到的字符,二不是整行 -n : --line-number, 输出所匹配行的行号 -v : --invert-match, 显示除匹配行外的所有行 -E : --exte

Linux中 文本处理命令 grep egrep fgrep的使

个人见解:我认为Linux中的文本处理命令 grep egrep fgrep命令 其实只要牢牢掌握grep就可以了 因为其他两个几乎是一样的 不一样的地方也很好区分 grep 基本使用方法: 使用方法 grep [选项] '表达式' #学习的时候没好好听 不知道自己写错没 为了这篇博文的通常 我还是先不看之前学习的视频了这里的常用选项有 -o -v -i -n -A -B -C -数字 -E [email protected]:~# grep -o '^root:' /etc/passwd #-

2017-12-16Linux基础知识(17)egrep扩展正则表达式

回顾一下上一章所讲的内容,在上一章当中我们讲述了文本处理工具grep命令,它是由用户根据指定的"模式"来进行行匹配,默认为贪婪模式,讲匹配到的结果进行打印到标准输出中来,而正则表达式是由一群特殊的字符所编写的,其中有一些字符并不代表原有的字面意义,而是用于控制或通配的功能,而正则表达式共分类两类,一类是基本正则表达式,另一类是扩展正则表达式,二者区别就是它们的元字符有所不同,而元字符就是用来匹配和控制的功能,那么在这一章当中我们讲述egrep及扩展正则表达式命令. 一.egrep命令

文本进行搜索:grep egrep fgrep

grep名称来自于g/re/p(globally search a regular expression and print,以正规表示法进行全域查找以及打印),是一个最初用于Unix操作系统的命令行工具.在给出文件列表或标准输入后,grep会对匹配一个或多个正则表达式的文本进行搜索,并只输出匹配(或者不匹配)的行或文本. 命令名称:grep, egrep, fgrep命令作用:print lines matching a pattern命令用法:grep [OPTIONS] PATTERN [

linux里grep和egrep,fgrep的区别

https://blog.csdn.net/xiaoxinyu316/article/details/46729443 例子:1. :格式: grep [option] pattern filename 注意: pattern如果是表达式或者超过两个单词的, 需要用引号引用. 可以是单引号也可双引号, 区别是单引号无法引用变量而双引号可以. grep '\<Tom\>' file   包含单词Tom的行grep 'Tom savage' file 包含Tom savage的行grep '^To

Linux下元字符、正则表达式、扩展正则表达式应用

Linux下通配符  常用来搜索文件ls,find 符号        意义 *           代表任意长度的任意字符 ?           代表任意单个字符 []          代表指定范围内的任意单个字符 [-]         如[a-z]代表a-z内的任意单个字符 [^]         指定范围外的任意单个字符 Linux下元字符 #     注释符号,常使用在脚本当中 \     转义字符,将"元字符或通配符"还原成一般字符, |     管道,可以将管道左边的

Linux常用命令—egrep及扩展正则表达式

扩展正则表达式 扩展正则表达式命令:egrep 不支持正则表达式但是快速:fgrep 字符匹配: .: []: [^]: 次数匹配: *: ?: +:匹配其前面的字符至少一次 {m}:精确匹配 {m,n}无需反斜线: 位置锚定: ^: $: \<或者\b: \>或者\b: 分组: ():分组 \1,\2,\3,...... 或者 |:或(a|b) 例: C|cat=C或者cat (C|c)at=Cat或者cat 懒惰限定符 *?         重复任意次,但尽可能少重复 +?