• grep详解


    一.简介

      Global Regular Expression Print,是一种强大的文本搜索工具,能使用正则表达式。

    二.语法

    grep [OPTIONS] PATTERN [FILE...]
    grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
    如果用-E/-e,则pattern就不需要转义。

    2.1 [options]主要参数

    选项 备注
    -c 只输出匹配行的计数。
    -o 只输出匹配的部分。
    -i 不区分大小写(只适用于单字符)。
    -h 查询多文件时不显示文件名。
    -l 查询多文件时只输出包含匹配字符的文件名。
    -L 列出不匹配的文件名
    -n 显示匹配行及行号。
    -s 不显示不存在或无匹配文本的错误信息。
    -v 显示不包含匹配文本的所有行(反向)。
    -r 搜索子目录
    -d 略过子目录
    -A n 匹配行上下文向后追加n行
    -B n 匹配行上下文向前追加n行
    -C n 匹配行上下文向前/向后都追加n行
    -E 等价于egrep,正则义
    -F 等价于fgrep,转义

    2.2 pattern正则表达式主要参数(用转义)

    选项 备注
    忽略正则表达式中特殊字符的原有含义。
    ^ 匹配正则表达式的开始行。
    $ 匹配正则表达式的结束行。
    < 从匹配正则表达 式的行开始。
    > 到匹配正则表达式的行结束。
    [ ] 单个字符,如[A]即A符合要求 。
    [ - ] 范围,如[A-Z],即A、B、C一直到Z都符合要求 。
    . 所有的单个字符。
    ? 至多1次
    * 零次以上。
    1次以上。
    {n} 严格匹配n次
    {n,} n次以上
    {n,m} [n,m]次

    三.简例

    • $ grep ‘test’ *.txt
    显示所有以d开头的文件中包含 test的行。

    • $ grep ‘test’ aa bb cc
    显示在aa,bb,cc文件中匹配test的行。

    • grep -o -E 'id=[0-9]+' data.doc      
    只输出行中"id=xxx"的部分。

    • grep -o -E 'word' test.txt|wc -l

    统计word单词的个数


    • grep -Ev '^$|^#' test.txt
    匹配非空行和注释行

    • ps -aux|grep tomcat | grep -v grep
    排除自身

    • $ grep ‘[a-z]{5}’ aa
    • $ grep ‘[a-z]+’ aa
    显示所有包含每个字符串至少有5个连续小写字符的字符串的行。

    • $ grep ‘w(es)t.*1′ aa
    如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着 另外一个es(1),找到就显示该行。如果用egrep或grep -E,就不用””号进行转义,直接写成’w(es)t.*1′就可以了。


    • $ grep pattern1 | pattern2 files 


    • $ grep pattern1 files | grep pattern2 


    • $ grep 'aa' a.txt | wc -l
    统计行数

    • $ grep '$' a.txt
    忽略正则表达式中特殊字符的原有含义

    • grep '^[^48]' data.doc      
    不匹配行首是48的行

    • grep '[^a-zA-Z]oo' pp 
    匹配oo之前没字符的行

    • egrep '219|216' data.doc
    使用扩展模式匹配

    • egrep 'g(o|pp)d' pp
    匹配含有god或gppd的行

    end

  • 相关阅读:
    pip install selenium==版本号 报错
    解决phantomjs输出中文乱码
    phantomjs学习之网页访问测速
    phantomjs学习之截图
    bzoj1069-最大土地面积
    hdu4372-Count the Buildings
    bzoj3786-星系探索
    Codeforces633H-Fibonacci-ish II
    hdu3625-Rooms
    斯特林数
  • 原文地址:https://www.cnblogs.com/waterystone/p/5084753.html
Copyright © 2020-2023  润新知