参  数:   -a或--text   不要忽略二进制的数据。   -A<显示列数>或--after-context=<显示列数>   除了显示符合范本样式的那一列之外,并显示该列之后的内容。   -b或--byte-offset   在显示符合范本样式的那一列之前,标示出该列第一个字符的位编号。   -B<显示列数>或--before-context=<显示列数>   除了显示符合范本样式的那一列之外,并显示该列之前的内容。   -c或--count   计算符合范本样式的列数。   -C<显示列数>或--context=<显示列数>或-<显示列数>   除了显示符合范本样式的那一列之外,并显示该列之前后的内容。   -d<进行动作>或--directories=<进行动作>   当指定要查找的是文件夹而非文件时。必须使用这项參数,否则grep指令将回报信息并停止动作。   -e<范本样式>或--regexp=<范本样式>   指定字符串做为查找文件内容的范本样式。   -E或--extended-regexp   将范本样式为延伸的普通表示法来使用。   -f <范本文件>或--file=<范本文件>   指定范本文件,其内容含有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每列一个范本样式。   -F或--fixed-regexp   将范本样式视为固定字符串的列表。   -G或--basic-regexp   将范本样式视为普通的表示法来使用。   -h或--no-filename   在显示符合范本样式的那一列之前,不标示该列所属的文件名。   -H或--with-filename   在显示符合范本样式的那一列之前,表示该列所属的文件名。   -i 或--ignore-case   忽略字符大写和小写的区别。  -l 或--file-with-matches   列出文件内容符合指定的范本样式的文件名。   -L 或--files-without-match   列出文件内容不符合指定的范本样式的文件名。   -n 或--line-number   在显示符合范本样式的那一列之前,标示出该列的列数编号。   -q或--quiet或--silent   不显示不论什么信息。   -r或--recursive   此參数的效果和指定“-d recurse”參数同样。   -s或--no-messages   不显示错误信息。  -v或--revert-match   反转查找。   -V或--version   显示版本号信息。   -w或--word-regexp   仅仅显示全字符合的列。   -x或--line-regexp   仅仅显示全列符合的列。   -y   此參数的效果和指定“-i”參数同样。

--exclude

--exclude-dir 搜索时排除某些目录   --help   在线帮助。

不指定搜索的对象,则默认为当前目录

grep常用于管道拼接,即在前面执行的结果中查找包含相关字符串的内容,例如:ps -ef |grep redis

( ps -ef :查看系统进程情况 )

1、查询单个文件(trace.log)中包含指定text的行:

grep text trace.log

2、利用*适配符,在所有包含log的文件名中 查询 text

grep text *log*

3、以递归的方式,在指定的目录及其子目录下面所有的文件中

grep -r text /home/logs

4、查找所有不包含 text 的行,即反向查找

grep -v text *log

5、除了查找的那一行之外,多显示 其之后(-A)/之前(-B)/前后(-C) 的n行的值

grep text -A/B/C n *log

6、匹配多个字符串(1)或关系,匹配其中一个就显示;(2)与关系,匹配所有才显示

//或
grep -E "text1|text2|text3" *log
//与
grep text1 *log |grep text2 |grep text3

7、让匹配的字符串显示颜色

grep text *log --color=auto
//或者
grep text *log --col

8、匹配key.txt文件中所有关键字的行

cat filename |grep -f key.txt  //在打开的filename文件中查找

9、搜索时排除某些文件

grep -rn "test" --exclude=*.txt  //查找包含text,但是排除txt文件
grep -rn "text" --exclude-from=skip.txt  //排除的条件存储在skip.txt文件里
grep -rn "text" --exclude-dir=aaa  //排除aaa目录下的所有文件