awk用法二

  3、awk的printf命令

    格式:printf format, item1 item2…

    要点:

     (1) 要指定format;

     (2) 输出时不会自动换行,如需换行则需要给出\n;

     (3) format用于为后面的每个item指定其输出格式;

     (4) format格式的指示符都是%开头,后跟一个字符。

    format常用的字符:

     %c:显示字符的ASCII码

     %d,%i:十进制整数;

     %e,%E:科学计数法;

     %f:显示浮点数;

     %g,%G:以科学计数法格式或浮点数格式显示数值;

     %s:显示字符串;

     %u:显示无符号整数;

     %%:显示%自身。

    format中常用修饰符:

    #:显示宽度;

    -:左对齐;

    +:显示数值的符号;

     .#:取值精度。

    实例1:以固定宽度20输出/etc/passwd文件中前10条记录的用户名和shell信息:

1.jpg

    上例中标注的部分含义为:两个字段都是以20个字符的宽度来显示,并且以换行符为每行的结束符。

   实例2:将上例中的用户名以左对齐显示:

2.jpg

   实例3:将3.14159取2位小数显示:

3.jpg

  4、awk的操作符

    算术操作符:

      x+y:加

      x-y:减 

      x*y:乘

      x/y:除

      x**(^)y:乘方

      x%y:取模

      -x:负值

      +x:转换为数值

    字符串操作符:

      连接:无需符号,直接将两个字符串放在一起就可以了;

    赋值操作符:

      x=y:将y的值赋值给x;

      x+=y:将x+y的结果赋值给x;

      x-=y:将x-y的结果赋值给x;

      x/=y:将x除以y的结果赋值给x;

      x%=y:将x与y取模的结果赋值给x;

      x^=y或x**=y:将x取y次方的结果赋值给x;

      x++:将x+1的结果赋值给x;

      x–:将x+1的结果赋值给x;

    注:如果模式自身是=号,要写为/=/

    比较操作符:

      x<y:如果x小于y则为真;

      x<=y:如果x小于等于y则为真;

      x>y:如果x大于y则为真;

      x>=y:如果x大于等于y则为真;

      x==y:如果x等于y则为真;

      x~y:模式匹配,x能够被y模式所匹配为真。

    逻辑操作符:

      x&&y:如果x为真则执行y;

      x||y:如果x为假则执行y。

    条件表达式:

      selector ?if-ture-expression: if-false-expression

        selector:条件

        ?if-ture-expression:如果为真则执行此表达式

        :if-false-expression:否则执行此表达式

    实例4:判断/etc/passwd文件中uid大于500则显示为"Common user",否则显示为“admin user":

4.jpg

  5、模式

    (1)正则表达式

      格式:/PATTERN/

      实例5:只显示/etc/passwd文件中存在root的行:

5.jpg

    (2)表达式

      以比较表达式居多,其结果为非0或非空字符串时满足条件,awk仅处理满足条件的行。

      实例6:只显示uid大于等于500的行:

6.jpg

    (3)特殊模式

      BEGIN:在awk命令的program运行之前执行一次;

     END:在awk命令的program运行之后执行一次。

     实例6:显示/etc/passwd文件中以root开头的行的用户名在人、UID、shell信息,显示时以逗号分隔各字段,并在输出结果后打印“THE END”。

7.jpg

    (5)空模式

      用于匹配任意行。

8.jpg

原创文章,作者:petmaster,如若转载,请注明出处:http://www.178linux.com/10460

(0)
petmasterpetmaster
上一篇 2015-12-24
下一篇 2015-12-28

相关推荐

  • Nginx:

    来自为知笔记(Wiz)

    Linux干货 2016-10-26
  • 文件查找与压缩-1

       1、 locate命令(非实时查找即数据库查找) 1)、查询系统上预建的文件索引数据库/var/lib/mlocate/mlocate.db      依赖于事先构建的索引;索引的构建是在系统较为空闲时自动进行( 周期性任务) 或者管理员手动更新数据库即是执行#updatedb命令;引构建过程…

    Linux干货 2016-08-15
  • 简单描述LVS工作原理-第1部分

    一、NAT模式(VS-NAT) 原理:就是把客户端发来的数据包的IP头的目的地址,在负载均衡器上换成其中一台RS的IP地址,并发至此RS来处理,RS处理完成后把数据交给经过负载均衡器,负载均衡器再把数据包的原IP地址改为自己的IP,将目的地址改为客户端IP地址即可。期间,无论是进来的流量,还是出去的流量,都必须经过负载均衡器。 优点:集群中的物理服务器可以使…

    Linux干货 2016-08-15
  • sed命令的用法和vim编辑器的使用

    一、文本处理工具sed sed [option]….'script] [input-file]… 简介: sed是一种流编辑器,他一次处理一行的内容,处理时把当前处理的行存储在临时缓冲区中,这个缓冲区被称为模式空间,接着用sed命令处理,处理完成后把模式空间的内容送往屏幕,接着处理下一行,知道文件末尾,而文件的内容…

    Linux干货 2016-08-15
  • 运筹帷幄之中,决胜与千里之外!

           运筹帷幄之中,决胜与千里之外,决定改变一生。        自从2016年年后学校要求产参加毕业实习,但对linux一窍不通的我,阴差阳错的被一家网络公司给录取了。        安排在一家企业做驻场运维工程师,刚去驻场的时候并没有给我分配相应的工作只是给了一些关于数据库,网络,和系统的一些资料,要求进行自学。我想了想,就决定选择了系统进行了解…

    2018-03-26
  • shell脚本初步

    shell脚本编程初步 程序:由数据和指令组成, 指令:由程序文件提供 数据:可以通过IO设备、文件、管道来得到, 程序:算法+数据结构 变量:变量名+变量名指向的内存空间 变量赋值: name = value变量类型:存储格式:字符 数值(精确数值 近似数值)   表示数据范围  &nb…

    Linux干货 2016-08-15