grep命令主要是做什么的呢 ?下面我们就来研究下。

grep命令简单来说就是“过滤”。就是把想看的数据通过grep过滤出来,把不想看的通过grep过滤掉。

它是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,Unix的grep家族包括(egrep,fgrep,grep)。egrep和fgrep的命令跟grep有所不同,egrep是grep的扩展,支持更多的re元字符,fgrep表示就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说正则表达式中的元字符表示自身的意思,不再特殊,linux使用的GNU版本的grep本身就强大,可以通过-G,-E,-F 命令行来选项egrep和fgrep的功能。

选项:

-A   #       --after                         表示后#行 

-B   #     --before                      表示前#行

  -C  #   --context                     表示“前后”各#行      

-D          --devices                       设置对设备,FIFO,管道的操作,读取,跳过

-E          --extended-regexp       扩展正则表达式egrep

-F         --fixed-strings               一个换行符分隔的字符串的集合fgrep

   -G         --basic-regexp              基本正则

-H         --with-filename            当搜索多个文件,显示匹配的文件名前缀

-I                                              不匹配二进制的东西 

-L        --files-without--math     匹配多个文件时,显示不匹配的文件名

   -P         -----perl-regexp            调用的perl正则

     -R/-r    --recursive                    递归调用

-V        --version                      显示版本信息

-U        --binary                       使用标志高亮匹配字符串

小写选项:

-a         --text                           不要忽略二进制数据

    -b       --byte-offset                  打印匹配行前面答应该行所在的块行码

    -c        --count                         显示匹配的行数

   -d          --directories               目录操作,读取,递归跳过

-e         --regexp                      指定字符串作为查找文件内容范本样式

-f           ---file                           从文件中获得匹配模式

-h          --no--filename            当搜索多个文件,不显示文件名的前缀

-i            --ignore-case             不区分大小写

-l            --files-with-matches   匹配多个文件时,显示匹配的文件名

   -n           --line-number             显示的内容加上行号

-q          --quiet,--silent          不显示任何东西

   -s         --no-messages           不显示错误信息

   -v          --invert-match            显示不匹配的行

-w         --word-regexp            匹配整个单词

-x          --line-regexp              匹配整行

-y                                            此选项跟-i选项相同

-o         --only-matching          只显示一行中匹配PATTERN的数据

  -m         --max-count                匹配的最大数

*注:单词由字母,数字,下划线组成

正则表达式:^   表示以^grep开头的行

           $     表示行尾锚定,用于模式的最右侧  

            .      表示任意单个字符  

       *       匹配前面的字符任意次

      .*    任意长度字符

        []     匹配指定的范围内的内容

             [^]       匹配不在范围的内容

        \(..\)      标记匹配字符,如\(love\) ,love被标记为1

       \<        锚定单词的开始,即词首锚定,用于单词模式的开始

        \>         锚定单词的词尾,即词尾锚定,用于单词模式的结束,锁定单词的结束

       \{n\}  匹配前面的字符n次

    \{,n\}  匹配前面的字符至多n次, <=n

    \{m,n\}  匹配前面的字符至少m次,最多n次

    \{n,\}  匹配前面的字符至少n次, 最多无限次

    \+            匹配前面的字符出现最少1次, 即:肯定有且>=1次

    \?    匹配前面的字符出现0次或1次,即:可有可无

    ^$         空行

    ^[[:space:]]*$         空白行

    ^PATTERN$         用于模式匹配整行

    \<PATTERN\>      匹配整个单词

    \|                           或者

   ()                         将多个字符捆绑在一起,当作一个整体处理

   后向引用:\(string\string2\)\)

          1\:string\(string2\)

          2\:string2

    

grep命令详解与正则表达式的更多相关文章

  1. linux grep命令详解

    linux grep命令详解 简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来 ...

  2. grep 命令详解

    [root@www ~]# grep [-acinv] [--color=auto] '搜寻字符串' filename 选项与参数: -a :将 binary 文件以 text 文件的方式搜寻数据 - ...

  3. Linux之grep命令详解

    简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...

  4. Ubuntu 14.10 下grep命令详解

    简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...

  5. Linux的grep命令详解

    简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...

  6. Linux Shell脚本入门--grep命令详解

    grep简介<摘自鸟哥,并加以整理.> grep (global search regular expression(RE) and print out the line,全面搜索正则表达 ...

  7. linux grep命令详解(转)

    简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...

  8. 【转】linux grep命令详解

    简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...

  9. Linux grep 命令详解

    简介grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能 ...

随机推荐

  1. Vue 初学

    Vue 的基本代码:      概念简介:Vue.js 是目前最火的一个前端框架,只关注视图层,主要负责MVC中的V这一层     MVC 是后端的分层开发概念:     MVVM是前端视图层的概念, ...

  2. Java安全之ClassLoader

    Java安全之ClassLoader 类加载机制 Java中的源码.java后缀文件会在运行前被编译成.class后缀文件,文件内的字节码的本质就是一个字节数组 ,它有特定的复杂的内部格式,Java类 ...

  3. ElasticSearch&kibana安装

    目录 ElasticSearch ElasticSearch 简介 ElasticSearch 概念 ElasticSearch quick start docker安装ElasticSearch K ...

  4. A Three-Stage Self-Training Framework for Semi-Supervised Semantic Segmentation

    论文阅读笔记: A Three-Stage Self-Training Framework for Semi-Supervised Semantic Segmentation 基本信息 \1.标题:A ...

  5. 如何基于Jupyter notebook搭建Spark集群开发环境

    摘要:本文介绍如何基于Jupyter notebook搭建Spark集群开发环境. 本文分享自华为云社区<基于Jupyter Notebook 搭建Spark集群开发环境>,作者:apr鹏 ...

  6. 题解 「HDU6403」卡片游戏

    link Description 桌面上摊开着一些卡牌,这是她平时很爱玩的一个游戏.如今卡牌还在,她却不在我身边.不知不觉,我翻开了卡牌,回忆起了当时一起玩卡牌的那段时间. 每张卡牌的正面与反面都各有 ...

  7. jenkins容器内安装Python3之后使用pip3 install xxx失败,可以考虑换国内源

    问题:pip3 install xxx失败 方案一:修改配置文件 首先在当前用户目录下建立文件夹.pip,然后在文件夹中创建pip.conf文件,再将源地址加进去即可. mkdir ~/.pipvim ...

  8. 步行(walk.cpp) noip模拟

    步行(walk.cpp) [题目描述] 小C喜欢步行,只有缓慢的步行,小C才能沉浸于其中,享受旅途中那些美好的瞬间. 小C来到了一座新的城市生活,这座城市可以看成 \(n\) 个点, \(n−1\) ...

  9. [源码解析]PyTorch如何实现前向传播(1) --- 基础类(上)

    [源码解析]PyTorch如何实现前向传播(1) --- 基础类(上) 目录 [源码解析]PyTorch如何实现前向传播(1) --- 基础类(上) 0x00 摘要 0x01 总体逻辑 0x02 废弃 ...

  10. 初学python-day9 函数1(已更新)

    函数 一.函数基础 1.什么是函数 在一个完整的项目中,某些功能会被重复使用,那么会将代码段封装成函数,当我们要使用的时候,直接调用即可. 函数是可以实现一定的小程序或者功能. 优点: 增加了代码的重 ...