GNU awk:

  文本处理三工具:grep,sed,awk

    grep,egrep,fgrep:文本过滤工具:pattern

    sed:行编辑器

      模式空间、保持空间

    awk:报告生成器,格式化文本输出;

    AWK:Aho,Weinberger,Kernighan --> New AWK,NAWK

    GNU awk,gawk

  gawk - pattern scanning and processing language

    基本用法:gawk [options] 'program' FILE ...

      program:PATTERN {ACTION STATEMENTS}

        语句之间用分号分隔

        print,printf

      选项:

        -F:指明输入时用到的字段分隔符;

        -v var=value:自定义变量;

    1、print

      print item1,item2,...

      要点:

        (1) 逗号分隔符;

        (2) 输出的各item可以字符串,也可以是数值;当前记录的字段、变量或awk的表达式;

        (3) 如省略item,相当于print $0;

    2、变量

      2.1 内建变量

        FS:input field seperator,默认为空白字符;

        OFS:output field seperator,默认为空白字符;

        RS:input record seperator,输入时的换行符;

        ORS:output record seperator,输出时的换行符;

      

        NF:number of field,字段数量

          (print NF),{print $NF}

        NR:number of record,行数;

        FNR:各文件分别计数;行数;

      

        FILENAME:当前文件名;

        ARGC:命令行参数的个数;

        ARGV:数组,保存的是命令行所给定的各参数;

      2.2 自定义变量

        (1) -v var=value

          变量名区分字符大小写;

        (2) 在program中直接定义

    3、printf命令

      格式化输出:printf FORMAT,item1,item2,...

        (1) FORMAT必须给出;

        (2) 不会自动换行,需要显式给出换行控制符,\n

        (3) FROMAT中需要分别为后面的每个item指定一个格式化符号;

        格式符:

        装饰符:

          #[.#]:第一个数字控制显示的宽度;第二个#表示小数点后面的精度;

            %3.1f

          -:左对齐

          +:显示数值的符号

    4、操作符

      算术操作符:

        x+y,x-y,x*y,x/y,x^y,x%y

        -x

        +x:转换为数值;

      字符串操作符:没有符号的操作符,字符串连接

      赋值操作符:

        =,+=,-=,*=,/=,%=,^=

        ++,--

      比较操作符:

        >,>=,<,<=,!=,==

      模式匹配符:

        ~:是否匹配

        !~:是否不匹配

      逻辑操作符:

        &&

        ||

        !

      函数调用:

        function_name(argu1,arge2,...)

      条件表达式:

        selector?if-true-expression:if-false-expression

    5、PATTERN

      (1) empty:空模式,匹配每一行;

      (2) /regular expression/:仅处理能够被此处的模式匹配到的行;

      (3) relational expresson:关系表达式;结果有“真”有“假”;结果为“真”才会被处理;

        真:结果为非0值,非空字符串;

      (4) line ranges:行范围,

        startline,endline

        /pat1/,/pat2/

        注意:不支持直接给出数字的格式

      (5) BEGIN/END模式

        BEGIN{ }:仅在开始处理文件中的文本之前执行一次;

        END{ } :仅在文本处理完成之后执行一次;

    6、常用的action

      (1) Expressions

      (2) Control statements:if,while等;

      (3) Compound statements:组合语句;

      (4) input statements

      (5) output statements

    7、控制语句

      if(condition) {statments}

      if(condition) {statments} else {statemnets}

      while(condition) {statments}

      do {statments} while(condition)

      for (expr1; expr2; expr3)  {statemnets}

      break

      continue

      delete array[index]

      delete array

      exit

      {statements}

Linux:Day17(上) gawk基础的更多相关文章

  1. NoSql1 在Linux(CentOS)上安装memcached及使用

    前言:       今天是初五,生活基本要从过年的节奏中回归到正常的生活了,所以想想也该想想与工作有关的事情了.我之前在工作中会经常使用memcached和redis,但是自己一直没有时间系统的好好看 ...

  2. linux基础-第十四单元 Linux网络原理及基础设置

    第十四单元 Linux网络原理及基础设置 三种网卡模式图 使用ifconfig命令来维护网络 ifconfig命令的功能 ifconfig命令的用法举例 使用ifup和ifdown命令启动和停止网卡 ...

  3. (转)推荐一个在Linux/Unix上架设ASP.NET的 WEB服务器--Jexus

    在Linux/Unix上架设ASP.NET WEB服务器,有两个可选方式,一种是Mono+XSP,一种是Mono+Jexus,其它的方式,比如 Apache+mod_mono.Nginx+FastCg ...

  4. Spark环境搭建(上)——基础环境搭建

    Spark摘说 Spark的环境搭建涉及三个部分,一是linux系统基础环境搭建,二是Hadoop集群安装,三是Spark集群安装.在这里,主要介绍Spark在Centos系统上的准备工作--linu ...

  5. 罗列Linux发行版的基础目录名称,命令法则和功能

    罗列Linux发行版的基础目录名称命名法则及功用规定 目录描述 /主层次 的根,也是整个文件系统层次结构的根目录 /bin存放在单用户模式可用的必要命令二进制文件,所有用户都可用,如 cat.ls.c ...

  6. 在Linux(Centos7)上使用Docker运行.NetCore

    在上一篇中我们写了如何在windows中使用docker运行.netcore,既然我们了解了windows下的运行发布,我们也可以试试linux下使用docker运行.netcore项目,那么今天我们 ...

  7. jenkins+svn完整打包并上传到linux服务器上

    因为公司用的是svn版本管理工具并且部署在了windows服务器上,所以测试环使用jenkins需要部署两套环境, 一套是在本地windows服务器,jenkins从svn下载代码完成打包并上传到li ...

  8. Linux最常用的基础命令

    Linux最常用的基础命令个人总结 计算机基础知识: 32bit和64bit系统的区别.系统运行机制 32bit=内存的最大寻址空间是2**32,也就是说最大只能使用4GB的内存64bit=内存的最大 ...

  9. 10个在UNIX或Linux终端上快速工作的建议

    你有没有惊讶地看到有人在Unix/ Linux中工作得非常快,噼里啪啦的敲键盘,快速的启动命令,飞快地执行命令? 在本文中,我共享了一些在Linux中快速.高效工作所遵循的Unix/ Linux命令实 ...

随机推荐

  1. [转载]PrintDocument,PrintDialog与PrintPreviewDialog用法总结

    一.使用PrintDocument进行打印 using System; using System.Drawing; using System.Drawing.Printing; using Syste ...

  2. 微信小程序页面跳转方法和携带参数详解

    1.页面跳转方式     (1)标签跳转   open-type的属性值对应api里的用法即wx.的用法   1 <navigator url="/page/navigate/navi ...

  3. 暖春许愿季丨i春秋给你送福利

    没有一点点防备 也没有一丝顾虑 就这样出现——暖春许愿季 纳尼?这不是我的歌声里 是i春秋在搞活动 这次准备搞个大的 多大呢 看这里 你许下心愿 我帮你实现 这是一棵神奇的心愿树 是一个畅所欲言之地 ...

  4. springboot的war和jar包

    本篇和大家分享的是通过maven对springboot中打war包和jar包:war通常来说生成后直接放到tomcat的webapps下面就行,tomcat配置自动解压war,而jar一般通过命令行部 ...

  5. 死磕 java集合之TreeSet源码分析

    问题 (1)TreeSet真的是使用TreeMap来存储元素的吗? (2)TreeSet是有序的吗? (3)TreeSet和LinkedHashSet有何不同? 简介 TreeSet底层是采用Tree ...

  6. 学习ASP.NET Core Razor 编程系列十九——分页

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

  7. 并发系列(2)之 ThreadLocal 详解

    本文将主要结合源码讲述 ThreadLocal 的使用场景和内部结构,以及 ThreadLocalMap 的内部结构:另外在阅读文本之前只好先了解一下引用和 HashMap 的相关知识,可以参考 Re ...

  8. C#语法——委托,架构的血液

    本篇文章主要介绍委托的应用. 委托是大家最常见的语法了,但会用与精通之间的差别是巨大的. 一个程序员如果不能精通委托,那么,他永远无法成为高级程序员. 所以,让我们把委托刻到血液里吧. 这样,你才能称 ...

  9. 多态以及 LeetCode 每日一题

    1 多态 1.1 多态性 Java 引用变量有两个类型:一个是编译时类型,一个是运行时类型.前者是代码中声明这个变量时的类型,后者是由实际对象的类型决定的.当编译类型和运行类型不一样时,产生多态. c ...

  10. php封装生成随机数函数

    随机数函数Random(num,min,max): num:生成的个数 min:最小的数 max:最大的数. <?php //生成随机20个1-80内不重复的随机数 //思路:也没什么思路,就是 ...