一.数组格式

数组是一个包含一系列元素的表.
格式如下:

abc[1]=”xiaohong”
abc[2]=”xiaolan”

解释:

abc:为数组名称
[1]、[2]:为数组元素下标,可以理解为数组的第1个元素、数组的第2个元素
xiaohong、xiaolan:元素值

例子1:定义数组,并且打印数组元素

[root@tab0 ~]# awk 'BEGIN{a[0]="xiaohong";a[1]="xiaolan";print a[0]}'
xiaohong[root@tab0 ~]# awk 'BEGIN{a[0]="xiaohong";a[1]="xiaolan";print a[1]}'
Xiaolan

例子2:打印出所有元素的下标

[root@tab0 ~]# awk 'BEGIN{a[0]="xiaohong";a[1]="xiaolan";for (i in a)print i;}'
0
1

解释:将a定义为循环中的取值列表。从数组中取出的是数组的所有元素的下标

例子3:我们将/etc/passwd/里边的第一类定义成数组

 [root@localhost ~]#:awk -F: '{{a[NR]=$1;}{print NR,a[NR];}}' /etc/passwd

例子4:利用数组统计每一个IP的访问量

[root@tab0 ~]# cat a
192.168.3.1
192.168.3.2
192.168.3.3
192.168.3.4
192.168.3.5
192.168.3.6
192.168.3.7
192.168.3.1
192.168.3.2
192.168.3.3
192.168.3.3
192.168.3.3
192.168.3.2
192.168.3.3
192.168.3.6
192.168.3.6
192.168.3.6
192.168.3.3
192.168.3.2
192.168.3.2

解决办法1:

[root@tab0 ~]# sort a |uniq -c | sort -nr6 192.168.3.35 192.168.3.24 192.168.3.62 192.168.3.11 192.168.3.71 192.168.3.51 192.168.3.4

解决办法2:

[root@tab0 ~]# cat test.sh
#!/bin/bash
awk '{list[$1]++
}
END {max=0;for(i in list){if (list[i] > max){max=list[i];s=i} }print max,s
}' a

解释:

list是一个数组,以$1为下标做++运算,也就是说,当$1内容重复一次,它的值就+加一次。
max初始值是0 ,然后用数组中的每一个元素的值去和max比较,如果比max大,就把这个元素的值赋值给max,那么max最后的值一定是最大的,也就是重复次数最多的。但是我们此时不知道下标(也就是$1的内容)是多少,所以用s记录一下当时的下标

shell脚本之awk数组相关推荐

  1. shell脚本中awk应用,数组的定义使用

    1.awk的基础应用 1.1,概念 除了使用 sed 命令,Linux 系统中还有一个功能更加强大的文本数据处理工具,就是 awk.它诞生于 20 世纪 70 年代末期,这也许是它影响了众多 Linu ...

  2. shell脚本、awk、sed用法

    shell sed awk 什么是shell 翻译官 内核与用户之间的解释器程序(/bin/bash) shell种类 配置文件:/etc/shells/bin/sh/bin/bash/sbin/no ...

  3. 【shell】shell脚本实战-awk基本介绍

    文章目录 前言 概念 awk常用的选项和命令 awk的选项 awk的环境变量 awk的运算符 awk的内置字符串函数 前言 我们之前学习过grep,sed,这两个工具的作用如下: grep和egrep ...

  4. linux运维实战练习及linux shell脚本、awk、sed工具命令学习总结

    一.linux shell 脚本 1.描述shell程序的运行原理(可附带必要的图形说明): Linux系统的shell作为操纵系统的外壳,为用户提供使用操纵系统的接口.它是命令语言.命令解释程序及程 ...

  5. 如何在shell脚本中定义数组及遍历

    问题起源:脚本中定义多个监控模块,代码重复率高,仅仅模块名不同,所以思考如何精简代码? 1.如何定义数组及访问数组: var=(1 2 3 4 5) var=(a b c d e) var=('1' ...

  6. linux awk 脚本格式,偷偷学习shell脚本之awk编辑器

    目录 awk编辑器 一.工作原理 二.命令格式 三.使用awk编辑器(示例) 1.按行输出文本 2.按字段输出文本 3.通过管道.双引号调用 Shell 命令 awk编辑器 一.工作原理 sed命令常 ...

  7. linux shell脚本传数组参数,shell脚本----函数和数组

    目录 一.shell函数 1.简介 2.格式 3.函数调用 4.示例演示 5.递归函数 二.shell数组 1.数组 2.Shell 数组的定义 3.获取数组元素 4.元素切片,替换,删除 5.示例演 ...

  8. 【shell】shell脚本实战-awk工作模式讲解

    文章目录 awk工作的三个步骤 awk中的各种模式详解 1. awk 脚本拥有的形式 2. 正则表达式 3. 关系表达式 4. 组合的Pattern(模式) 5. Pattern1,Pattern2 ...

  9. 在 Shell 脚本里使用数组

    2019独角兽企业重金招聘Python工程师标准>>> Shell 原生支持数组,虽然支持的不好. 创建数组.写入数组元素 使用 (e1 e2 ..) 语法创建数组: arr=(a ...

最新文章

  1. mysql数据库sql语句大全
  2. 【Git】Git 基础命令 ( 添加暂存文件 git add | 提交文件至版本库 git commit | 查看版本库状态 git status | 查询文件修改 git diff )
  3. 23、HTML图像按钮
  4. docker 查看虚拟网卡_最简单的免费虚拟化方案:Hyper-V Server + Windows Admin Center
  5. 一个按键控制数码管的开和关_基于FPGA的数字电路实验3:点亮数码管
  6. 不要错过路边的的风景
  7. I/0口输入输出实验 将P1口的某一位作为输入使用,连接一个按键,当按键按下时使发光二极管亮,否则发光二极管熄灭
  8. vue-cli设置跨域代理 + 开发/生成环境简单请求接口设置
  9. 汉字转拼音,TinyPinyin、Pinyin4j与JPinyin哪个库更快
  10. 2019年春PAT甲级考试
  11. C语言判断一个数是否为素数
  12. 虎虎生威,挑战云上魔方(活动期完成可得实物魔方)
  13. 【交通流理论拟合】-速度流量拟合
  14. 通用商业计划书PPT模板
  15. 数据一致性(CAP原则)
  16. 发那科syst178_发那科系统报警大全
  17. 如何在word中像LaTex那样打公式
  18. 服务器搭建邮件自动回复,爆笑的邮件自动回复内容,邮件自动回复心理
  19. PP模块常用数据库表
  20. 虚拟团队四大管理技巧

热门文章

  1. 自学python在电脑上安装什么杀毒软件好_使用Python Shells绕过杀毒软件
  2. Jupyter Notebook使用plt.show()输出“Figure size 640x480 with 1 Axes”
  3. (sizeof(arr)/sizeof(int))啥意思
  4. Jenkins系列-Jenkins忘记密码的修复方法
  5. RestTempalte 的使用
  6. 《计算机视觉》集大网课学习笔记【6】
  7. 为行业赋能:anyRTC 从传统视频会议转型 PaaS 云服务
  8. [OpenGL]一个简单的地球月亮太阳运转模型
  9. 中国四丙基氯化铵市场深度研究分析报告
  10. css背景随机,CSS3随机背景图片切换特效