linux grep命令

1. -r -R -w参数

转自:http://blog.51osos.com/linux/linux-grep-w-grep-r/

今天GoFace给大家介绍linux grep命令中的-w和-R或-r参数。这两个参数在一般教程中很少提到,但在特定的时候用处很大。

-w, –word-regexp
Select only those  lines  containing  matches  that  form  whole
words.   The  test is that the matching substring must either be
at the beginning of the line, or preceded  by  a  non-word  con-
stituent  character.  Similarly, it must be either at the end of
the line or followed by a non-word constituent character.  Word-
constituent  characters are letters, digits, and the underscore.

//意思就是精确匹配,匹配单词还不是字符串,如想匹配“is”,”this”就不会被匹配。实例如下:

[root@GoGo ~]# cat goface.txt

goface

gofaceme

[root@GoGo ~]# grep ’goface’ goface.txt

goface

gofaceme

[root@GoGo ~]# grep -w ’goface’ goface.txt

goface

怎么样,有实例一下子就看明白了吧。

-R, -r, –recursive
Read all files under each directory, recursively; this is equiv-
alent to the -d recurse option.

//-r/-R选项是递归搜索, 查找你搜索的目录或子目录下的所有含有某个你要找的文件.

[root@GoGo ~]# grep -R ’goface’ /root

/root/goface.txt:goface

/root/goface.txt:gofaceme

遍历/root下所有文件匹配goface。

如果寻找的目录下文件太多或含有大文件,可使用以下参数或结合find命令。

–include=PATTERN
Recurse in directories only searching file matching PATTERN.

–exclude=PATTERN
Recurse in directories skip file matching PATTERN.

----------------------------------------------------------------------------------------------------------------------------------------

find 目录 -name ‘字串’

 

2. -i 参数

不区分大小写

3. -v 参数

反向选择

例如:去掉配置文件中的空行和#号注释行

linux grep命令_第1张图片

4. -n参数

显示行号

5. 选择含有gxxxg的行(g与g之间有任意字符)

正则表达式:.代表任意一个字符,*代表0个到任意多个前一字符的重复‘.*’表示任意字符是很常见的

注意正则表达式中*为0到n个前一字符的重复,而通配符中*代表n个任意字符

6.显示颜色

grep -n --color=auto ‘good’ file

7. 过滤连续 n 到 m 个『前一个 RE 字符』

grep ‘go\{2,6\}g’ file  过滤2到6个o

 

你可能感兴趣的:(linux grep命令)