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. libcurl 概述(翻译)

    l名称 libcurl 客户端 URL 传输 描述 这是一个如何使用libcurl进行C语言编程的简短概述.这里提到的每个功能都有特定的手册页.还有 libcurl-easy 手册页,libcurl- ...

  2. 使用Gitmoji进行git commit的快速查阅指南

    目录 前言 1. 查阅方法:脚本法 1.1 利用 VS Code 编辑多行文本快速写脚本文件 1.2 给脚本添加可执行权限 1.3 修改环境变量 PATH 使脚本在所有路径下都可以执行(全局执行) 2 ...

  3. iOS 15 无法弹出授权弹框之解决方案---Your app uses the AppTrackingTransparency framework, but we are unable to locate the App Tracking Transparency permission request when reviewed on iOS 15.0

    2021年9月30日下午:我正愉快的期盼着即将到来的国庆假期,时不时刷新下appstoreconnect的网址,28号就提上去的包,今天还在审核中....由于这个版本刚升级的xcode系统和新出的iO ...

  4. try catch中的return与finally

    try catch中的return与finally 代码为 public class Test{ public int add(int a,int b){ try { return a+b; } ca ...

  5. django3上线部署踩的坑

    好久没有用过django写项目了,最近公司开发个官网,一时兴起就拿来练练手,这不用不知道,一用吓一跳啊. 才多久,版本都到3.0了. 踩坑一:运行项目时失败报错,后来查找资料发现, 当你使用djang ...

  6. SpringBoot使用注解进行分页

    分页使用可以说非常普遍了,有时候会需要非常灵活的方式去开启或关闭分页,尝试使用一下注解的方式来进行分页. 依赖安装 需要使用的依赖: Mybatis-Plus PageHelper SpringBoo ...

  7. hibernate不同条件查询结果集一样,主键@ID的原因

    这一周在翻新公司的老项目,遇到了一些预想不到的事情. 其中一个是,使用hibernate查询,不同的查询条件,居然都查到同一条记录,感觉奇怪了,开始以为是session的原因: 后来发现是hibern ...

  8. 2020.12.20-Codeforces Round #105补题

    B - Escape The princess is going to escape the dragon's cave, and she needs to plan it carefully. Th ...

  9. Windows 安装 gcc

    Windows 安装 gcc ① 官网下载 GCC, the GNU Compiler Collection - GNU Project - Free Software Foundation (FSF ...

  10. Linux 命令后&的作用

    cp $filename /dev/ & & 代表非阻塞方式拷贝文件,如果不加& 则必须等到执行完该指令后才能执行后来的指令.