• 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

  • 相关阅读:
    14.UA池和代理池
    13.scrapy框架的日志等级和请求传参
    12.scrapy框架之递归解析和post请求
    11.scrapy框架持久化存储
    10.scrapy框架简介和基础应用
    09.移动端数据爬取
    08.Python网络爬虫之图片懒加载技术、selenium和PhantomJS
    07.验证码处理
    vi编辑器
    tar 压缩命令
  • 原文地址:https://www.cnblogs.com/highriver/p/2240830.html
Copyright © 2020-2023  润新知