zoukankan      html  css  js  c++  java
  • Linux 文档流处理三剑客学习第一篇 grep

    工作中经常需要碰到Linux的日志或者命令输出,处理输出的文档流信息,作为我个人认为的三剑客之首,grep平时用的最多,但基本也就是全量匹配,或者加个i不区分大小写进行匹配。

    趁最近工作有空闲,首相对grep进行一些学习。

    参考链接:

    https://blog.csdn.net/jinguangliu/article/details/81129426

    https://www.cnblogs.com/sidianok/p/12931683.html

    简介:

    grep(global search regular expression(RE) and print out the line)

    全面搜索正则表达式并将其打印输出

    通过grep--help输出可以看到非常多的选项,我还是参考网上的资料,先走一遍流水。

    [root@www ~]# grep [-acinv] [--color=auto] '搜寻字符串' filename
    选项与参数:
    -a :将 binary 文件以 text 文件的方式搜寻数据
    -c :计算找到 '搜寻字符串' 的次数
    -i :忽略大小写的不同,所以大小写视为相同
    -n :顺便输出行号
    -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
    --color=auto :可以将找到的关键词部分加上颜色的显示喔!
    

    平时用的比较多的是-i 个人感觉比较有用的有-v -n

    找到一个比较使用的参数 -A3 -B2

    -A, --after-context=NUM   打印以文本结尾的NUM 行

    -B, --before-context=NUM  打印以文本起始的NUM 行

    -C, --context=NUM         打印输出文本NUM 行[前后都打印]

    通过这两个参数可以打印出,匹配行信息的后几行或者前几行信息.

    grep 可以直接与正则表达式配合使用,使用规则与Python语言中的正则使用差不多。规则需要用单引号包起来,特殊符号匹配需要用转移符号进行转义

    需要转移的包含但不仅限与:{,},-,\,

    具体规则不在重复,提示自己需要在规则中前后添加单引号,

    对于|[或]和+[1个或者]与?等扩展正则使用字符,

    可以用过grep -E使用,或者在grep是用的时候,在这个符号之前+上转移字符

    通过本人测试,其实通过grep -E官方的解释为:-E, --extended-regexp     PATTERN 是一个可扩展的正则表达式(缩写为 ERE)

    其实通过-E的选项使用正则规则更加合适,你可以在任何情况下都加上,这样grep能认识所有的正则里面的符号,使用的时候不需要在正则符号比较{-等符号之前加上的转义符

    如果需要将正则中的特殊符号当做普通字符匹配,就可以通过转移符

    (base) [sidian@VM_0_17_centos ~]$ echo '{}' |grep '{}'
    {}
    (base) [sidian@VM_0_17_centos ~]$ echo '{}' |grep -E '{}'
    {}
    

      

    上面演示了匹配{}的写法

    最后我对-E的使用,我认为如果用到了正则符号就上-E参数,如果没用到就不用E了

  • 相关阅读:
    诗人就是“情场浪子”的代名词?
    微博营销,开启营销的新时代
    网店成功之道:卖家应有4种心态(实战交流)
    一枚钉子前进
    推动中国文学的发展,我义不容辞
    微博营销,再次引爆网络江湖
    微博营销,不仅仅是粉丝
    邮件群发软件版本升级公告
    如何让自己在浩瀚的网海中脱颖而出
    如何定时关机【windows/linux】
  • 原文地址:https://www.cnblogs.com/sidianok/p/15040707.html
Copyright © 2011-2022 走看看