grep命令

1、  语法

grep [options] PATTERN [FILE...]

grep [options] [-e PATTERN | -f FILE] [FILE...]

 

2、  描述

grep命令在输入文件中(如果没有输入文件,则从标准输入)寻找与模式PATTERN匹配的行,默认对匹配的行执行打印到标准输出的操作。

另外,egrep命令与grep –E相同fgrepgrep –F相同。

 

3、  选项

-E--extended-regexp

将把模式串当作扩展的正则表达式处理。

-F--fixed-strings

将模式匹配串当作固定的字符串处理,用换行符分割,任何一个都需要匹配。

-?

同时显示匹配行上下的?行,如:grep -2 pattern filename同时显示匹配行的上下2行,总共显示5行。

-c--count

只打印匹配的行数,不显示匹配的内容。

-H--no-filename

当搜索多个文件时,显示匹配文件名前缀。(默认操作)

-h--no-filename

当搜索多个文件时,不显示匹配文件名前缀。

-i--ignore-case

忽略大小写差别。

-q--quiet

取消显示,只返回退出状态。0则表示找到了匹配的行。

-l--files-with-matches

搜索多个文件时,打印匹配模板的文件清单。

-L--files-without-match

搜索多个文件时,打印不匹配模板的文件清单。

-n--line-number

在匹配的行前面打印行号。

-s--silent

不显示关于不存在或者无法读取文件的错误信息。

-v--revert-match

反检索,只显示不匹配的行。

-w--word-regexp

如果被/</>引用,就把表达式做为一个单词搜索。

-V--version

显示软件版本信息。

 

4、  示例

数据文件grep.data,内容如下

48       Dec      3BC1977 LPSX     68.00    LVX 2A     138

 

483      Sept     5AP1996 USP      65.00    LVX 2C     189

 

47       Oct      3ZL1998 LPSX     43.00    KVM9D    512

 

219      dec      2CC1999 CAD      23.00    PLV 2C     68

 

484      nov      7PL1996 CAD      49.00    PLV 2C     234

 

483      may      5PA1998 USP      37.00    KVM9D    644

 

216      sept     3ZL1998 USP      86.00    KVM9E    234

 

(1)    从文件中寻找与 47 匹配的行

[zjplus@demo ~]$ grep 47 grep.data

47       Oct      3ZL1998 LPSX     43.00    KVM9D    512

 

(2)    显示与之匹配的上下两行

[zjplus@demo ~]$ grep -2 47 grep.data

483      Sept     5AP1996 USP      65.00    LVX 2C     189

 

47       Oct      3ZL1998 LPSX     43.00    KVM9D    512

 

219      dec      2CC1999 CAD      23.00    PLV 2C     68

 

(3)    只显示匹配的行数

[zjplus@demo ~]$ grep -c 47 grep.data

1

 

(4)    不显示匹配的文件名

[zjplus@demo ~]$ grep 47 grep.data grep_data.bak

grep.data:47       Oct      3ZL1998 LPSX     43.00    KVM9D    512

grep_data.bak:47       Oct      3ZL1998 LPSX     43.00    KVM9D    512

[zjplus@demo ~]$ grep -h 47 grep.data grep_data.bak

47       Oct      3ZL1998 LPSX     43.00    KVM9D    512

47       Oct      3ZL1998 LPSX     43.00    KVM9D    512

 

(5)    忽略大小写查找

[zjplus@demo ~]$ grep -i usp grep.data

483      Sept     5AP1996 USP      65.00    LVX 2C     189

483      may      5PA1998 USP      37.00    KVM9D    644

216      sept     3ZL1998 USP      86.00    KVM9E    234

 

(6)    安静查找

[zjplus@demo ~]$ grep -q USP grep.data

[zjplus@demo ~]$

 

(7)    只打印与之匹配的文档清单

[zjplus@demo ~]$ grep -l 47 grep.data grep_data.bak

grep.data

grep_data.bak

 

(8)    只打印与之不匹配的文档清单

[zjplus@demo ~]$ grep -L 47 grep.data grep_data.bak df.data

df.data

 

(9)    在前面加上行号

[zjplus@demo ~]$ grep -n 47 grep.data grep_data.bak df.data

grep.data:5:47       Oct      3ZL1998 LPSX     43.00    KVM9D    512

grep_data.bak:5:47       Oct      3ZL1998 LPSX     43.00    KVM9D    512

 

(10) 不显示不存在或无匹配文本的错误信息

[zjplus@demo ~]$ grep dfsf not_exist

grep: not_exist: 没有那个文件或目录

[zjplus@demo ~]$ grep -s dfsf not_exist

[zjplus@demo ~]$

 

(11) 显示与之不匹配的行

[zjplus@demo ~]$ grep -v 47 grep.data

48       Dec      3BC1977 LPSX     68.00    LVX 2A     138

 

483      Sept     5AP1996 USP      65.00    LVX 2C     189

 

 

219      dec      2CC1999 CAD      23.00    PLV 2C     68

 

484      nov      7PL1996 CAD      49.00    PLV 2C     234

 

483      may      5PA1998 USP      37.00    KVM9D    644

 

216      sept     3ZL1998 USP      86.00    KVM9E    234

 

 

(12) 显示版本号

[zjplus@demo ~]$ 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.

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值