1. grep(1)
  2. grep(1)

NAME

grep - 打印匹配行

描述

grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的 行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达 式版本,它的使用权限是所有用户。

格式

grep [OPTIONS] PATTERN [FILE...]

grep [OPTIONS] [−e PATTERN | −f FILE] [FILE...]

选项

-a--text

将二进制档案视为文本文件搜寻,grep原本是搜寻文本文件,这个参数则 相当于--binary-files=text这个参数。

-c

只输出匹配行的总数

-i

不区分大小写(只适用于单字符)

-h

查询多文件时不显示文件名

-l

查询多文件时只输出包含匹配字符的文件名

-n

显示匹配行及行号

-s

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

-v

显示不包含匹配文本的所有

-l

只列出匹配的文件名

-L

列出不匹配的文件名

-w

只匹配整个单词,而不是字符串的一部分

-A N--after-context=N

除了列出符合行之外,并且列出后N行

-B N--before-context=N

除了列出符合行之外,并且列出前N行

-C N--context[=N]

列出符合行之外并列出上下各N行,默认值是两行

PATTERN既可以是要搜索的字符串,也可以是一个正则表达式。输入要搜索的字符 串时最好使用双引号,而在模式匹配使用正则表达式时,注意使用单引号。

正则表达式常用参数

表1.常用的元字符
代码    说明
 .      匹配除换行符以外的任意字符
\w      匹配字母或数字或下划线或汉字
\s      匹配任意的空白符
\_s     表示匹配一个空格或一个换行符
\d      匹配数字
\b      匹配单词的开始或结束
^       匹配字符串的开始
$       匹配字符串的结束
\<      标注单词的开始
\>     标注单词的结尾

表2.常用的限定符
代码    说明
*       重复零次或更多次
+       重复一次或更多次
?       重复零次或一次
{n}     重复n次
{n,}    重复n次或更多次
{n,m}   重复n到m次

表3.分组
代码    说明
x|y     匹配 x 或 y
[xyz]   匹配包含的任一字符
[^xyz]  反向字符集。匹配未包含的任何字符
[a-z]   字符范围。匹配指定范围内的任何字符。  
[^a-z]  反向范围字符。匹配不在指定的范围内的任何字符

实例

examples

grep 'test' d*

显示所有以d开头的文件中包含 test的行

grep 'test' aa bb cc

显示在aa,bb,cc文件中匹配test的行

grep '[a-z]\{5\}' aa

显示所有包含每个字符串至少有5个连续小写字符的字符串的行

grep man *

匹配类似于'Batman','manic',’man’等的字符串

grep '\<man' * 

匹配类似于'manic'和'man',但不匹配类似于'Batman'等的字符串。

grep '\<man\>'

匹配’man’,但不匹配类似于'Batman'或'manic'等的字符串。

说明

默认情况下,grep只搜索当前目录,搜索子目录可以使用grep -r递归搜索,忽 略子目录可以使用grep -d skip,如果输出很多,您可以通过管道将其转到less 上阅读。

有一点要注意,您必需提供一个文件过滤方式(搜索全部文件的话用*)。如果您忘 了,grep会一直等着,直到该程序被中断。如果您遇到了这样的情况,按CTRL c ,然后再试。

风生水起:http://www.cnblogs.com/end/

原文地址:http://www.cnblogs.com/end/archive/2012/02/21/2360965.html

  1. March 2015
  2. grep(1)