shell脚本之awk数组
一.数组格式
数组是一个包含一系列元素的表.
格式如下:
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数组相关推荐
- shell脚本中awk应用,数组的定义使用
1.awk的基础应用 1.1,概念 除了使用 sed 命令,Linux 系统中还有一个功能更加强大的文本数据处理工具,就是 awk.它诞生于 20 世纪 70 年代末期,这也许是它影响了众多 Linu ...
- shell脚本、awk、sed用法
shell sed awk 什么是shell 翻译官 内核与用户之间的解释器程序(/bin/bash) shell种类 配置文件:/etc/shells/bin/sh/bin/bash/sbin/no ...
- 【shell】shell脚本实战-awk基本介绍
文章目录 前言 概念 awk常用的选项和命令 awk的选项 awk的环境变量 awk的运算符 awk的内置字符串函数 前言 我们之前学习过grep,sed,这两个工具的作用如下: grep和egrep ...
- linux运维实战练习及linux shell脚本、awk、sed工具命令学习总结
一.linux shell 脚本 1.描述shell程序的运行原理(可附带必要的图形说明): Linux系统的shell作为操纵系统的外壳,为用户提供使用操纵系统的接口.它是命令语言.命令解释程序及程 ...
- 如何在shell脚本中定义数组及遍历
问题起源:脚本中定义多个监控模块,代码重复率高,仅仅模块名不同,所以思考如何精简代码? 1.如何定义数组及访问数组: var=(1 2 3 4 5) var=(a b c d e) var=('1' ...
- linux awk 脚本格式,偷偷学习shell脚本之awk编辑器
目录 awk编辑器 一.工作原理 二.命令格式 三.使用awk编辑器(示例) 1.按行输出文本 2.按字段输出文本 3.通过管道.双引号调用 Shell 命令 awk编辑器 一.工作原理 sed命令常 ...
- linux shell脚本传数组参数,shell脚本----函数和数组
目录 一.shell函数 1.简介 2.格式 3.函数调用 4.示例演示 5.递归函数 二.shell数组 1.数组 2.Shell 数组的定义 3.获取数组元素 4.元素切片,替换,删除 5.示例演 ...
- 【shell】shell脚本实战-awk工作模式讲解
文章目录 awk工作的三个步骤 awk中的各种模式详解 1. awk 脚本拥有的形式 2. 正则表达式 3. 关系表达式 4. 组合的Pattern(模式) 5. Pattern1,Pattern2 ...
- 在 Shell 脚本里使用数组
2019独角兽企业重金招聘Python工程师标准>>> Shell 原生支持数组,虽然支持的不好. 创建数组.写入数组元素 使用 (e1 e2 ..) 语法创建数组: arr=(a ...
最新文章
- mysql数据库sql语句大全
- 【Git】Git 基础命令 ( 添加暂存文件 git add | 提交文件至版本库 git commit | 查看版本库状态 git status | 查询文件修改 git diff )
- 23、HTML图像按钮
- docker 查看虚拟网卡_最简单的免费虚拟化方案:Hyper-V Server + Windows Admin Center
- 一个按键控制数码管的开和关_基于FPGA的数字电路实验3:点亮数码管
- 不要错过路边的的风景
- I/0口输入输出实验 将P1口的某一位作为输入使用,连接一个按键,当按键按下时使发光二极管亮,否则发光二极管熄灭
- vue-cli设置跨域代理 + 开发/生成环境简单请求接口设置
- 汉字转拼音,TinyPinyin、Pinyin4j与JPinyin哪个库更快
- 2019年春PAT甲级考试
- C语言判断一个数是否为素数
- 虎虎生威,挑战云上魔方(活动期完成可得实物魔方)
- 【交通流理论拟合】-速度流量拟合
- 通用商业计划书PPT模板
- 数据一致性(CAP原则)
- 发那科syst178_发那科系统报警大全
- 如何在word中像LaTex那样打公式
- 服务器搭建邮件自动回复,爆笑的邮件自动回复内容,邮件自动回复心理
- PP模块常用数据库表
- 虚拟团队四大管理技巧
热门文章
- 自学python在电脑上安装什么杀毒软件好_使用Python Shells绕过杀毒软件
- Jupyter Notebook使用plt.show()输出“Figure size 640x480 with 1 Axes”
- (sizeof(arr)/sizeof(int))啥意思
- Jenkins系列-Jenkins忘记密码的修复方法
- RestTempalte 的使用
- 《计算机视觉》集大网课学习笔记【6】
- 为行业赋能:anyRTC 从传统视频会议转型 PaaS 云服务
- [OpenGL]一个简单的地球月亮太阳运转模型
- 中国四丙基氯化铵市场深度研究分析报告
- css背景随机,CSS3随机背景图片切换特效