grep、egrep及相应的正则表达式和用法
grep系:grep,egrep,fgrep,文本搜索工具,基于PATTERN对于给定的文本进行模糊搜索,grep系默认工作于贪婪模式下。 grep: grep [OPTIONS] PATTERN [FILE...]
PATTERN:过滤条件,是由正则表达式元字符以及没有特殊含义的文本字符组成。 正则表达式元字符: 会被正则表达式引擎解释为特殊含义。 pcre――perl语言的正则表达式引擎。 基本的正则表达式:BRE 扩展的正则表达式:ERE grep默认仅支持基本正则表达式 egrep默认仅支持扩展正则表达式 fgrep默认不开启正则表达式引擎
文本字符: 只具备字符片面含义的那些字符
常用选项:
-i,--ignore-case 忽略文本字符的大小写 -v,--invert-match 反向匹配,最终显示的结果是PATTREN不能匹配的行 -c,--count 统计匹配PATTERN的所有的行数 -o,--only-matching 关闭贪婪模式,仅显示PATTERN能匹配的内容 -q,--quiet,--silent 不输出任何匹配结果 --color[=WHEN],--colour[=WHEN] 将匹配的PATTREN的内容以特殊颜色显示 -E,--extended-regexp 扩展的正则表达式 grep-E 相当于egrep -F,--fixed-strings,--fixed-regexp 相当于fgrep -G,--basic-regexp 基本的正则表达式,egrep -G相当于grep -P,--perl-regexp 使用PCRE引擎 -A NUM,--after-context=NUM 在显示匹配PATTERN的行同时显示其后面的NUM行 -B NUM,--before-context=NUM
PATTERN; 正则表达式元字符:
基本正则表达式元字符: GLOBBING-------简化版的正则表达式: [] ? *
字符匹配: .:匹配任意单个字符 []:匹配指定范围内的任意单个字符 [^]:匹配指定范围以外的任意单个字符 下列所有的字符集都可以放置于[]之中匹配单个字符 [:lower:] [:upper:] [:alpha:] [:digit:] [:space:] 空格 [:alnum:] [:punct:] [:blank:] [:xdigit:]:所有的十六进制数字 a-z:所有的小写字母 A-Z:所有的大写字母 0-9:所有的十进制数字
次数匹配: 该类字符之前的那个字符可以出现的次数 *:其前面的字符可以出现任意次(0次,1次或多次) ?:其前面的字符可有可无(0次或一次) +:其前面的字符至少出现一次(1次或多次) {m}:其前面的字符必须出现m次 {m,n}:至少出现m次,至多出现n次 (m<n) {,n}:其前面字符至多出现n次,至少出现0次 {m,}:其前面字符至少出现m次
在正则表达式中,表示任意长度任意字符的方式:.*
位置锚定字符: 行锚定: 行首锚定:^ 行尾锚定:$ 字锚定: 字首锚定:&;或b 字尾锚定:&;或b b:旧版本中的锚定方法,建议不使用
对于正则表达式的引擎来说,字是由特殊字符组成的连续字符串
分组与引用字符: (PATTERN):将此PATTERN所匹配到的所有字符当做一个不可分割的整体来处理。
在正则表达式引擎中,有一系列内置变量,这些变量会保存所有分组内的字符信息,用于反向引用,这些变量依次是:1,2,3... ..
或:
| 注意:|将其左右两边的字符串当整体对待。
A|american:A或american 请找出ifconfig命令中数值在100-255之间的整数: 第一位:1 2 第二位:0-9 0-4 5 第三位:0-9 0-9 0-5 ifconfig | grep '&;(1[0-9][0-9]|2[0-4][0-9]|25[0-5])&;'
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
默认情况下,grep命令后面只允许有一个PATTERN; 如果想要在依次grep搜索中写多个PATTERN,则需要-e选项,每个-e选项只能使用一个PATTERN作为参数; 将所需要的PATTERN写入到一个文件中,保证每行只有一个PATTERN,我们就可以使用-f的方式实现多PATTERN的匹配;
egrep: 下列用法和grep一样
扩展的正则表达式元字符: 字符匹配: . [] [^] 次数匹配: * ? + {m} {m,n} {m,} {0,n}
位置锚定: ^ $ &;,b &;,b
分组和引用: () 1,3...
或: | (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |