grep 命令作为 linux 文本处理三剑客的一员,另外两个是 sed 和 awk,它们会在后续章节中作详细介绍。
grep 命令的由来可以追溯到 UNIX 诞生的早期,在 UNIX 系统中,搜索的模式(patterns)被称为正则表达式(regular expressions),为了要彻底搜索一个文件,有的用户在要搜索的字符串前加上前缀 global(全面的),一旦找到相匹配的内容,用户就像将其输出(print)到屏幕上,而将这一系列的操作整合到一起就是 global regular expressions print,而这也就是 grep 命令的全称。| 通配符 | 功能 |
|---|---|
| c* | 将匹配 0 个(即空白)或多个字符 c(c 为任一字符)。 |
| . | 将匹配任何一个字符,且只能是一个字符。 |
| [xyz] | 匹配方括号中的任意一个字符。 |
| [^xyz] | 匹配除方括号中字符外的所有字符。 |
| ^ | 锁定行的开头。 |
| $ | 锁定行的结尾。 |
[root@localhost ~]# grep [选项] 模式 文件名
这里的模式,要么是字符(串),要么是正则表达式。而此命令常用的选项以及各自的含义如表 2 所示。| 选项 | 含义 |
|---|---|
| -c | 仅列出文件中包含模式的行数。 |
| -i | 忽略模式中的字母大小写。 |
| -l | 列出带有匹配行的文件名。 |
| -n | 在每一行的最前面列出行号。 |
| -v | 列出没有匹配模式的行。 |
| -w | 把表达式当做一个完整的单字符来搜寻,忽略那些部分匹配的行。 |
[root@localhost ~]# grep CLERK emp.data
#忽略输出内容
[root@localhost ~]# grep -c CLERK emp.data
#忽略输出内容
[root@localhost ~]# grep ^78 emp.data
#忽略输出内容
新闻热点
疑难解答