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)
上一篇 2015-12-24 16:44
下一篇 2015-12-28 15:25

相关推荐

  • linux的内建命令和外部命令

    摘要:    Linux命令有内部命令(内建命令)和外部命令之分,内部命令和外部命令功能基本相同,但是其工作机制相差很大。本文就内建命令和外部命令做一下介绍。 一、内部命令(内建命令)    内部命令,实际上是shell程序的一部分,其中包含的是一些比较简单的linux系统命令,这些命令由shell程序识别并在shel…

    Linux干货 2016-10-18
  • 一起学DHCP系列(五)指派、获取

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/163168     本节将主要讲述DHCP客户端获取IP的过程,也是此系列中非常重要的一节。   &…

    Linux干货 2015-03-25
  • 初识

    CPU:运算器、控制器、寄存器、缓存 分区不能直接被访问,需要接口 磁盘0 第一分区  挂载mount      C 磁盘0 第一分区  挂载mount      C:\var 如果一个目录没有被分区单独挂载,那么其数据存储在父目录所对应的…

    2017-07-11
  • N25第7周作业

    1、创建一个10G分区,并格式为ext4文件系统;   (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;    (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; ]# fdisk /dev/sdb #划出一个…

    Linux干货 2017-02-21
  • 用户,管理,权限

    主要是介绍一些 关于创建用户 ,更改用户信息及密码 ,还有权限管理等等。可能介绍的不全还请大佬们多多关照新人!

    Linux干货 2017-11-24
  • Basic认证

    basic认证: (1) 定义安全域 [root@bluee htdocs]# mkdir admin [root@bluee htdocs]# vim admin/index.html 刷新浏览器,可以看到admin/index.html文件内容“Page FOR Adminstration” 编辑配置文件: 找个位置增加一个Directoty: <…

    Linux干货 2016-08-05