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. Ajax与Gson

    1. ajax的底层操作方法: 代码get请求  Get请求 2. Post请求 $("#chufa").click(function () { var val = $(" ...

  2. Elasticsearch、XXLJob以及最近的学习记录

    Elasticsearch.XXLJob以及最近的学习记录 前言 在这九月的最后一周,来总结一下最近的学习记录,主要是对于Elasticsearch.XXLjob的初步学习,想着还是多记录点,以便后面 ...

  3. python二级 第八套

    第一部分 基本操作 第一题 1. 第二题 1. 字符串的索引  和列表的索引   一样使用 2. 这俩者有什么区别 3. 我的意思想说  切片         里面没有冒号  就是表示取这个索引的 字 ...

  4. 理解classpath

    一.什么是classpath classpath,翻译过来就是类路径的意思,它是包含class文件的路径集合,用于指示虚拟机jvm在这些路径下搜索class文件. 类路径可以同时定义多个,多个类路径之 ...

  5. IdentityServer4[2]:启动一个新的IdentityServer项目

    启动一个新的IdentityServer项目 从头开始,从基础开始,然后变得更加复杂,循序渐进的学习 工具:VS2017 15.9.8 .Net Core2.2 基本过程 创建一个新的ASP.NET ...

  6. 【C++ Primer Plus】编程练习答案——第5章

    1 void ch5_1() { 2 using namespace std; 3 int small, big, sum{0}; 4 cout << "enter small ...

  7. The Data Way Vol.2 | 做个『单纯』的程序员还真不简单

    关于「The Data Way」 「The Data Way」是由 SphereEx 公司出品的一档播客节目.这里有开源.数据.技术的故事,同时我们关注开发者的工作日常,也讨论开发者的生活日常:我们聚 ...

  8. NXOpen.BlockStyler的一些用法

    关于BLOCK UI的一些控件的用法,本人曾经使用的代码,拿出来共享: Option Strict Off Imports NXOpen Imports NXOpen.BlockStyler Impo ...

  9. 初学python-day3 列表

  10. 【数据结构与算法Python版学习笔记】图——词梯问题 广度优先搜索 BFS

    词梯Word Ladder问题 要求是相邻两个单词之间差异只能是1个字母,如FOOL变SAGE: FOOL >> POOL >> POLL >> POLE > ...