awk用法一

  gawk程序是Unix中的原始awk程序的GNU版本,它提供了一种编程语言而不只是编辑器命令。在CentOS中awk命令实际上是gawk程序的链接文件名。

1.jpg

  基本语法:

    awk [options] ‘program’ flie1 file2 …

    awk [options] ‘PATTERN{action}’ flie1 file2…

  1、awk的输出

    print item1,item2…

    要点:

     (1)各项目之间使用逗号分隔,而输出时则使用输出分隔符分隔;

     (2)输出的各item可以是字符串数值、当前记录的字段、变量或awk的表达式;数值会被隐式转换为字符串后输出;

     (3)print后面item如果省略,相当于print $0,即输出整个文本行;输出空白,使用print “”; 

    选项:

      -F 分隔符:指定输入分隔符;

    例如:

2.jpg

  2、awk的变量

    awk可以使用的变量有内置变量和自定义变量两种。

    2.1 内置变量

     FS:输入时指定字段分隔符,与-F选项作用类似;

3.jpg

     RS:输入时指定行的分隔符(换行符);

4.jpg

     OFS:输出时指定字段分隔符;

5.jpg

     ORS:输出时指定行分隔符;

6.jpg

     上例中使用“—”做为行分隔符,每行的结束都被替换为“—”。

     NF:每行中的字段个数;

12.jpg

     NR:行数,所有文件一并计数;

8.jpg

     上例中虽然有两个文件但其行数是合并计算的。

     FNR:各文件分别记录行数;

9.jpg

     ARGV:数组,用于保存命令本身和命令行参数;

10.jpg

    数组下标从0开始计算,ARGV[0]保存awk命令本身,ARGV[1]保存表达式后面的条一个参数。

     ARGC:保存awk命令中参数的个数;

11.jpg

     FILENAME:awk所正在处理的当前文件的名称。

13.jpg

   2.2 自定义变量

     (1) 可以在脚本中定义变量;

     (2) 可以在命令行中定义变量。

    注:变量名区分大小写

     格式如下所示:

14.jpg

15.jpg

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

(0)
上一篇 2015-12-21 14:21
下一篇 2015-12-24 16:44

相关推荐

  • socket编程原理

    1、问题的引入 1) 普通的I/O操作过程: UNIX系统的I/O命令集,是从Maltics和早期系统中的命令演变出来的,其模式为打开一读/写一关闭(open-write-read-close)。在一个用户进程进行I/O操作时,它首先调用“打开”获得对指定文件或设备的使用权,并返回称为文件描述符的整型数,以描述用户在打开的文件或设备上进行I/O操作的进程。然…

    Linux干货 2015-04-10
  • Mysql之主从复制

    Mysql之主从复制 节点一 修改配置文件设置唯一ID开起二进制日志 [root@node1 ~]# vim /etc/my.cnf 增加以下内容     [mysqld]     log-bin=master_bin &nbsp…

    Linux干货 2016-07-19
  • 使用NFS服务和samba部署wordpress

             centos 7.3主机一台   centos 6.8主机一台  使用yum安装的mysql(7以后使用yum装mysql叫mariadb)         我事先查看了一…

    2017-05-02
  • Linux 的硬链接与软链接的区别

       链接是指在电子计算机程序的各模块之间传递参数和控制命令,并把它们组成一个可执行的整体的过程。通俗一点无非是把文件名和计算机文件系统使用的节点号链接起来。   linux中链接有硬链接和软连接之分,首先我们来介绍硬链接,硬链接相当于创建了文件的第二个名字,增加了额外的记录项用来引用文件,还是隶属与同一文件系统上,是同一个物理…

    Linux干货 2016-10-20
  • Linux进程及管理(1)

    Linux进程及管理(1) 内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能 Process: 运行中的程序的一个副本; 存在生命周期Linux内核存储进程信息的固定格式:task struct 多个任务的的task struct组件的链表:task list 进程创建: init 父子关系 进程:都由其父进程创建 fork(), cl…

    Linux干货 2015-05-28
  • 第六周练习

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; # cp /etc/rc.d/rc.sysinit /tmp # vim /tmp/rc.sysinit 末行模式下:%s@^[[:space:]]\+@#&am…

    Linux干货 2016-12-03