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

相关推荐

  • keepalived的初级使用

        1、双主模型的ipvs高可用   一、双主模型的ipvs高可用     1)网络结构图       2)、ipvs的类型是dr模型,调度算法是rr       RS1和RS2都是centos6.8 对RS1和RS2的配置:…

    Linux干货 2017-05-15
  • 推荐-​以各种方式实现yum源,简单暴力,绝对实操干货!

    以各种方式实现yum源,简单暴力,绝对实操干货! 科普:yum不是程序包安装工具,而是rpm包前端管理工具,通过yum可以更好的管理rpm的安装卸载 以各种方式实现yum源,简单暴力,绝对实操干货! 一、本地yum源之“挂载光盘镜像实现”! 二、本地yum源之“挂载本地磁盘上的镜像文件”! 三、如能上网,实现自定义指定镜像网站yum源 四、炸天重磅来袭!!!…

    Linux干货 2016-04-11
  • 第八周 服务管理与文本处理

    1、简述systemd的新特性及unit常见类型分析,能够实现编译安装的如nginx\apache实现通过systemd来管理 2、描述awk命令用法及示例(至少3例) 3、描述awk函数示例(至少3例)    

    2018-01-21
  • Linux磁盘管理

                             Linux磁盘管理 磁盘管理:  本章内容    磁盘结构    分区类型   &nbsp…

    系统运维 2016-09-02
  • 记事本操作的小小小技巧

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/140063       大家在查看文本文件的时候,如果内容很多,想快速到达某一位置可能比较麻烦,这时如果按住shift,再点击右侧…

    Linux干货 2015-03-26
  • 从LongAdder看更高效的无锁实现

    接触到AtomicLong的原因是在看guava的LoadingCache相关代码时,关于LoadingCache,其实思路也非常简单清晰:用模板模式解决了缓存不命中时获取数据的逻辑,这个思路我早前也正好在项目中使用到。 言归正传,为什么说LongAdder引起了我的注意,原因有二: 作者是Doug lea ,地位实在举足轻重。 他说这个比AtomicLon…

    Linux干货 2016-06-01