grep

一.使用场合: grep的作用是显示匹配一个或多个模式的文本行。时常会作为管道(|)的第一步,以便对匹配的数据作进一步处理。grep常用于查找和替换文本的。

二. 常用命令 zz: http://www.cnblogs.com/xuxm2007/archive/2011/01/10/1932288.html

1.grep -i 表示忽略大小写

2.grep '****' filename(s) 可以用正则式匹配多个文件搜索
比如存在二个文件demo_file  demo_file1 使用grep "****" demo_*

3.用grep -w搜索整个词,而不是词中的部分字串。

4.GREP_OPTIONS高亮显示搜索的字串
通过修改GREP_OPTIONS对搜索字串高亮显示。
$ export GREP_OPTIONS='--color=auto' GREP_COLOR='100;8'
附关于GREP_OPTIONS:

color有三个值供选择:never、always、auto。
always 和auto的区别就是,always会在任何情况下都给匹配字段加上颜色标记, 而auto则只在输出到终端时才加上颜色。
可以在.bashrc里加上
export GREP_OPTIONS='-color=auto'
来实现高亮匹配。

具体用什么颜色,可以通过
export GREP_COLOR='a;b' #默认是1;31,即高亮的红色
来设置,其中:
a可以选择:【0,1,4,5,7,8】
0 关闭所有属性
1 设置高亮度
4 下划线
5 闪烁
7 反显
8 消隐
b可以选择:【30-37或40-47】
30 black
31 red
32 green
33 yellow
34 blue
35 purple
36 cyan
37 white
30 — 37 设置前景色
40 — 47 设置背景色
export GREP_OPTIONS='--color=auto' 
export GREP_COLOR='1;31'



5.用grep -r递归搜索全部的文件
如果想查找当前目前以及其子目录的全部文件时,可以使用 -r 选项。如下例
$ grep -r "match string" *

6. 用 grep -n 在输出时显示行号,行号从第一行开始计算

7.用grep -c统计mach的行数  或者:grep "*****" filename | wc -l

 

8. grep -v表示invert match,类似exclude:

Usually if you want to search for string with specific keyword, you use grep.

cat /etc/passwd | grep root

What if you want to list all entry without keyword “root” ?

cat /etc/passwd | grep -v root

下面的脚本片段在shell编程里经常用到,用来判断是否已经有类或脚本在运行:

num=`ps -ef | grep -v 'grep\|/bin/bash -c' | grep  'generateIndex.sh' | awk -v pid=$$ -f $AWKFILE `
if [ $num -eq 1 ]
then

  ......

fi

使用ps -ef | grep -v 'grep\|/bin/bash -c' | grep  "eclipse"可以把grep命令本身对应的进程排除在外。通常我们扫索会出现匹配进程与grep进程。有时为了方便通过awk操作。

通常使用ps -ef | grep -v 'grep\|/bin/bash -c' | 来将grep进程排除在外。
下面是对比结果:
zhonghua.daodao.com [~] 11/07/11 14:44:35
zhonghua@pts/ttys000 $ ps -ef | grep -v 'grep\|/bin/bash -c' | grep  "eclipse"
  503   552   122   0   0:48.42 ??         6:39.70 /usr/local/eclipse/Eclipse.app/Contents/MacOS/eclipse -psn_0_229432
zhonghua.daodao.com [~] 11/07/11 14:44:43
zhonghua@pts/ttys000 $ ps -ef | grep  "eclipse"
  503   552   122   0   0:48.47 ??         6:39.84 /usr/local/eclipse/Eclipse.app/Contents/MacOS/eclipse -psn_0_229432
  503   805   798   0   0:00.00 ttys000    0:00.00 grep eclipse

10.大日志文件分析的参数参考 http://www.cnblogs.com/highriver/archive/2011/07/22/2113841.html

原文地址:https://www.cnblogs.com/highriver/p/2240830.html