很多时候,我们并不需要列出文件的全部内容,而是从文件中找到包含指定信息的那些行,要实现这个目的,可以使用 grep 命令。grep命令是一个强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。正则表达式是描述一组字符串的一个模式,正则表达式可以是一些纯文本文字,也可以是用来产生模式的一些特殊字符。为了进一步定义一个搜索模式,grep 命令支持如下表所示的这几种正则表达式的元字符(也就是通配符)。
| 通配符 | 功能 |
| c* | 将匹配 0 个或多个字符 c(c 为任一字符) |
| . | 将匹配任何一个字符,且只能是一个字符 |
| [xyz] | 匹配方括号中的任意一个字符 |
| [^xyz] | 匹配除方括号中字符外的所有字符 |
| ^a | 匹配以a开头的行 |
| $a | 匹配以a结尾的行 |
grep 命令在每一个文件或特定输出中搜索特定的模式,当使用 grep 时,会输出跟指定模式匹配的每一行,但是使用 grep 命令并不改变文件中的内容。grep命令的基本格式如下:
[root@localhost ~]# grep [选项] 模式 文件名
这里的模式,要么是字符串,要么是正则表达式,而此命令常用的选项以及各自的含义如下表所示:
| 选项 | 含义 |
| -c | 仅列出文件中包含模式的行数 |
| -i | 忽略模式中的字母大小写 |
| -l | 列出带有匹配行的文件名,不列出具体的匹配行 |
| -n | 列出所有的匹配行,并显示行号 |
| -v | 列出没有匹配模式的行,可以使用该选项,来排除关键字 |
| -w | 把表达式当做一个完整的单字符来搜寻,忽略那些部分匹配的行(匹配整词) |
| -r | 递归搜索 |
注意,如果是搜索多个文件,grep 命令的搜索结果会显示文件名+匹配模式的行。
我要赚赏金
