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

相关推荐

  • N26-第二周作业-邢岩(2)

     马哥门徒-N26-邢岩   我们接着说今天的分享,接着,我们来看看bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容好了。    1.bash的基础特性之:命令的执行状态结果      bash通过状态返回值来输出此结果:       成功:0 …

    Linux干货 2017-02-10
  • 第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。[root@localhost ~]# cp -r /etc/skel/ /home/tuser1[root@localhost /]# chmod -R g=,o= /home/tuser1 2、编辑/etc/group文件…

    Linux干货 2017-03-04
  • Linux程序包管理(二)YUM使用

    YUM Linux程序包管理(二) 说完了程序包管理以及rpm的相关使用,接下来说说rpm的前端管理工具 YUM YUM是什么? &emsp;&emsp;&emsp;前面提到,yum是rpm程序包管理器的前端管理工具,那么yum到底是什么?又能做什么呢? YUM:yellow dog,Yellowdog Update Mod…

    Linux干货 2016-06-01
  • 简述动静分离

        今天来简述一下如何实现wordpress的动静分离以及读写分离      首先来放出大图。   1.来看图说话     首先来介绍一下这张图    最前端的两台机器是  负责调度后端主机请求动…

    2017-05-18
  • NTP服务器搭建

        1、NTP(Network Time Protocol)         在计算机世界中,NTP(Network Time Protocol,网络时间协议)被广泛用于对时间的统一性和准确性要求非常高的场景,是用来使网络中的各个计算机时间同步的一种协议。…

    Linux干货 2015-11-18