zoukankan      html  css  js  c++  java
  • 关于awk的逗号问题

    对于awk逗号的问题,我昨天看的一本书有提过:  

       blob.png

       

       《Linux就是这个范儿》挺好的书,大家可以看看~~~~

        测试过,总结如下(不知道总结有没有错,欢迎大家吐槽,欢迎大家吐槽,吐槽,吐槽........)

        前期准备工作

        (i)b.txt文本内容:

    blob.png

        (ii)逗号表达式形式: “字符串s1,字符串s2”

        (iii)n1: s1所在行;        n2:s2所在行  

    ############################################

    注意:无论什么情况,都是优先匹配s1!!!     ——————防色盲系列

    (非常符合人类从左到右看东西的习惯~总不会奇葩到从右往左看吧~~)

    主要有 4 种情况

    情况一、匹配s1,匹配s2

       (0)if (n1==n2)   仅打印匹配那行——》 n1  

       (1)if (n1 < n2),打印 [n1,n2] 行.       命令:awk '/78/,/21/' b.txt  

       (2)if (n1 > n2),打印 [n1,最后一行]  命令:awk '/21/,/78/' b.txt 

    blob.png

    情况二、匹配s1,不匹配s2

       结果同一的(2),打印 [n1,最后一行]

    情况三、不匹配s1,匹配s2 

       匹配不上,什么都不打印

    情况四、不匹配s1,不匹配s2 

       匹配不上,什么都不打印

    ###########################

    那么前面提到的 awk '/Jan/,/nov/'b.txt 就很好理解了,就是情况一的(2)     

    因为优先匹配n1(Jan所在行),而 nov 虽然也匹配了,但是由于n2(nov 所在行)在 n1 的前面,所以打印的时候就是打印 n1(Jan那行)到文本结尾

    图是这样的:

    我当时是这样问的:

      awk '/Jan/,/nov/'b.txt  逗号表示什么意思,第一行打印出来好理解,因为有Jan,但后3行就不懂 了,明明都没有Jan 或者 nov,不知道它是以什么标准来匹配的?

      awk '/Jan/;/nov/'b.txt  分号这个就好理解,就是或者的意思,把有Jan 或者 nov的行都打印出来

    这条题目的链接:

    http://www.cnblogs.com/emanlee/p/3327576.html

    第 1 大题的第 2 行

  • 相关阅读:
    Treap仿set 模板
    线段树(区间更改,区间查最值)模板
    UVA 12345 Dynamic len(带修莫队)
    服务器配置环境以及部署项目流程
    使用SSH的scp命令行传输文件到远程服务器
    服务器部署javaweb项目
    在ubuntu服务器上安装mysql并配置外网访问
    在ubuntu服务器上配置tomcat
    在ubuntu服务器上配置jdk
    linux命令--解压与压缩
  • 原文地址:https://www.cnblogs.com/windysai/p/6025814.html
Copyright © 2011-2022 走看看