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. python学习笔记(十二)-网络编程

    本文结束使用 Requests 发送网络请求.requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到.可以说,Requests 完全满足如今网络的需求. ...

  2. P7115-[NOIP2020]移球游戏【构造】

    正题 题目链接:https://www.luogu.com.cn/problem/P7115 题目大意 \(n+1\)个柱子,前面\(n\)个上面各有\(m\)个球,球有\(n\)种颜色,每种\(m\ ...

  3. P4590-[TJOI2018]游园会【dp套dp】

    正题 题目链接:https://www.luogu.com.cn/problem/P4590 题目大意 给出一个长度为\(m\)的字符串\(s\). 对于每个\(k\in[0,m]\)求有多少个长度为 ...

  4. P6378-[PA2010]Riddle【2-SAT】

    正题 题目链接:https://www.luogu.com.cn/problem/P6378 题目大意 给出\(n\)个点\(m\)条边的一张无向图,图中有\(k\)种颜色的点. 要求每种颜色选择一个 ...

  5. RabbitMQ 3.9.7 镜像模式集群与Springboot 2.5.5 整合

    1. 概述 老话说的好:做人要懂得变通,善于思考,有时稍微转个弯,也许问题就解决了. 言归正传,之前我们聊了 RabbitMQ 3.9.7 镜像模式集群的搭建,今天我们来聊聊 RabbitMQ 3.9 ...

  6. 屏幕截图小工具的制作过程问题记录 python PIL pynput pyautogui pyscreeze

    最近想做一个脚本小工具,方便写一些操作说明文档,它的功能很简单,就是把脚本打开之后,鼠标进行操作点击时,会在点击后进行截图,并在图上标记出点击的位置,有点类似于录屏软件的图片版,这样的话,如果要想用文 ...

  7. Python爬取 | 唯美女生图片

    这里只是代码展示,且复制后不能直接运行,需要配置一些设置才行,具体请查看下方链接介绍: Python爬取 | 唯美女生图片 from selenium import webdriver from fa ...

  8. 网络通信IO的演变过程(一)(一个门外汉的理解)

    以前从来不懂IO的底层,只知道一个大概,就是输入输出的管道怼到一起,然后就可以传输数据了. 最近看了周志垒老师的公开课后,醍醐灌顶. 所以做一个简单的记录. 0 计算机组成原理相关 0.1. 计算机的 ...

  9. Mybatis 动态批量修改

    封面:学校夜景 xdm,祝大家节日快乐!! 今天听<路过人间>演唱会Live限定版,爱上了一句歌词. 说来惭愧,人对爱只学会,视死如归. 1.业务需求 如下: 前台传给我一个 docume ...

  10. [软工顶级理解组] 团队任务拆解(Alpha)

    一.任务概述 在alpha阶段,我们需要完成功能规格说明书中所提到的所有功能,在一个阶段的开发周期内,交付最小可行的可用版本. 二.任务分配及时长 分组&成员 具体任务 预计时长(小时) 前端 ...