迹忆博客
当前位置: 主页 > 学无止境 > 操作系统 > 文章

Linux提取命令grep(一)

发布时间: 2016-09-24 作者: 迹忆 浏览次数:

grep作为linux中使用频率非常高的一个命令,和cut命令一样都是管道命令中的一员。并且其功能也是对一行数据进行分析,从分析的数据中取出我们想要的数据。也就是相当于一个检索的功能。当然了,grep的功能要比cut强大的多了。grep检索的条件是多种多样的,甚至还可以和正则表达式合作来检索。

下面我们来看grep的用法

# grep [选项] ‘字符串’ 文件名

说明:grep用法中,字符串就是我们想要检索的字符串;文件名就是数据来源,也就是我们需要分析的数据。因为grep可以接受来自标准输入的数据,所以一般情况下grep作为管道命令来使用。

首先我们来看一个实例,该实例不使用任何选项。查找/etc/passwd 中带有mail字符串的用户的信息:

# grep mail /etc/passwd
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
//输出两行结果

选项一

-v  这里的v是小写,其含义是输出没有匹配到的字符串的那些数据

-s  不显示错误信息

-V  这里的v是大写,打印grep命令的信息

看下面的例子

# grep –v mail /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
……
//显示了多行信息,唯独没有包含mail的那些行的数据。这个例子的结果和第一个例子的结果是相反的。

下面我们看-s的用法

# grep mail /etc/passwds
grep: /etc/passwds: No such file or directory  //显示错误信息,因为我们的系统中没有/etc/passwds这个文件
# grep –s mail /etc/passwds
//这时输出的信息是空的,因为-s限制错误信息的输出

-V选项没有什么好介绍的,就是打印我们当前系统使用的grep命令的信息,其中包含其版本

# grep –V
grep (GNU grep) 2.5.1
Copyright 1988, 1992-1999, 2000, 2001 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

由于grep选项较多,一篇文章的篇幅较长, 所以这里我们分三篇文章来介绍。本篇就先介绍其三个选项,其他的选项在linux提取命令grep(二)linux提取命令grep(三)中介绍。

除非注明转载,本站文章均为原创,欢迎转载,转载请以链接形式注明出处

本文地址: