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)
petmasterpetmaster
上一篇 2015-12-21
下一篇 2015-12-24

相关推荐

  • Linux风水学

    Linux风水学童 有的没的说一说 说一个,到一个。想起哪个说哪个,说起哪个都不错。 对于接触过一点点Linux的风水学童的我来说,还在苦背天地玄黄,宇宙洪荒。虽然不懂是干什么的,但是心里总有个声音告诉我,这些鬼画符肯定有用。总有一天我能成为一个合格的Linux风水师,去某个员外家里施展堪舆之术被奉为上宾。 Linux流派大概   相对于目前的流派…

    2017-07-18
  • 马哥教育网络班19期+第九周课程练习

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现;#!/bin/bash#declare -i noNum=0declare -i lNum=0for bashName in `cat /etc/passwd | cut -d: -f7` …

    Linux干货 2016-06-29
  • N28-第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
    2、取出最后登录到当前系统的用户的相关信息。
    3、取出当前系统上被用户当作其默认shell的最多的那个shell。
    4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。
    5、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。
    6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。
    7、显示/var目录下一级子目录或文件的总个数。
    8、取出/etc/group文件中第三个字段数值最小的10个组的名字。
    9、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。
    10、请总结描述用户和组管理类命令的使用方法并完成以下练习:
    (1)、创建组distro,其GID为2016;
    (2)、创建用户mandriva, 其ID号为1005;基本组为distro;
    (3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
    (4)、给用户mageia添加密码,密码为mageedu;
    (5)、删除mandriva,但保留其家目录;
    (6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
    (7)、修改slackware的默认shell为/bin/tcsh;
    (8)、为用户slackware新增附加组admins;

    2017-12-17
  • linux基础学习第十二天(shell函数、数组以及yum使用及编译安装)

    2016-08-18 授课内容: shell编程基础(select 循环与菜单、函数) yum管理、定制yum仓库 select 循环与菜单         select variable in list       &…

    Linux干货 2016-08-21
  • Linux发展及简单命令

    一 计算机的组成及其功能 冯·诺依曼提出的计算机体系结构:计算机由控制器、运算器、存储器、输入设备、输出设备五部分组成。 二 Linux的发行版 Linux发行版主要有三个分支:Debian、Slackware、Redhat。 (1)Debian:(以社区的方式运作) Ubuntu:基于Debian开发的开源Linux操作系统,主要针对桌面和服务器; Lin…

    2018-03-02
  • 马哥教育网络班22期+第9周课程练习

    week9: 1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin); 分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash # SHELL1="/sbin/nologin" declare -i sum1=sum2=0 for&nb…

    Linux干货 2016-10-17