前言
General Regular Expression Parser意为通用正则表达式解析器,即简写为grep。该命令通常用来在文件中搜索字符。
用法
grep命令使用一个选项、一个要匹配的模式还有一个需要搜索的文件,其语法如下所示:
grep [options] PATTERN [FILES]
常规
grep的主要options选项的列表如下表所示:
选项 | 含义 |
-c | 输出匹配行的数目,而不是输出匹配的行 |
-E | 启用扩展表达式 |
-h | 取消每个输出行的普通前缀,即匹配查询模式的文件名 |
-i | 忽略大小写 |
-l | 只列出包含匹配行的文件名,而不输出真正的匹配行 |
-v | 对匹配模式取反,即搜索不匹配行而不是匹配行 |
正则表达式
使用正则表达式允许你进行更复杂的匹配,一些字符是以特定方式处理。常用的特殊字符如下表所示:
字符 | 含义 |
^ | 指向一行的开头 |
$ | 指向一行的结尾 |
. | 任意单个字符 |
[ ] | 方括号内包含一个字符范围,其中任何一个字符都可以被匹配,例如字符范围a~e,或在字符范围前面加上^符号表示使用反向字符范围,即不匹配指定范围内的字符 |
如果箱将上述字符用作普通字符,就需要在它们前面加上\字符。如果想使用$字符,你需要将它写为\$。[ ]方括号中还可以使用一些有用的特殊匹配模式(在[ ]中添加如下匹配模式完整字符)。
匹配模式 | 含义 |
[:alnum:] | 字母与数字字符 |
[:alpha:] | 字母 |
[:ascii:] | ASCII字符 |
[:blank:] | 空格或制表符 |
[:cntrl:] | ASCII控制字符 |
[:digit:] | 数字 |
[:graph:] | 非控制、非空格字符 |
[:lower:] | 小写字母 |
[:print:] | 可打印字符 |
[:punct:] | 标点符号字符 |
[:space:] | 空白字符,包括垂直制表符 |
[:upper:] | 大写字母 |
[:xdigit:] | 十六进制数字 |
对于制定了扩展匹配-E选项,我们还可以在符合正则表达式规则的匹配后添加如下选项,并在这些字符之前加上\字符。
选项 | 含义 |
\? | 匹配是可选的,但最多匹配一次 |
\* | 必须匹配0次或多次 |
\+ | 必须匹配1次或多次 |
\{n\} | 必须匹配n次 |
\{n,\} | 必须匹配n次或n次以上 |
\{n,m\} | 匹配次数在n到m之间,包括n和m |
实例
待续。。。