Linux教程

Linux grep命令详解

本文主要是介绍Linux grep命令详解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、grep命令介绍

  很多时候,我们并不需要列出文件的全部内容,而是从文件中找到包含指定信息的那些行,要实现这个目的,可以使用 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 把表达式当做一个完整的单字符来搜寻,忽略那些部分匹配的行

注意,如果是搜索多个文件,grep 命令的搜索结果只显示文件中发现匹配模式的文件名;而如果搜索单个文件,grep 命令的结果将显示每一个包含匹配模式的行。

二、grep使用举例

【例1】假设有一份 emp.data 员工清单,现在要搜索此文件,找出职位为 CLERK 的所有员工,则执行命令如下:

[root@localhost ~]# grep CLERK emp.data
#忽略输出内容

而在此基础上,如果只想知道职位为 CLERK 的员工的人数,可以使用“-c”选项,执行命令如下:

[root@localhost ~]# grep -c CLERK emp.data
#忽略输出内容

【例2】搜索 emp.data 文件,使用正则表达式找出以 78 开头的数据行,执行命令如下:

[root@localhost ~]# grep ^78 emp.data
#忽略输出内容

 

这篇关于Linux grep命令详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!