shell脚本--awk数组入门案例
awk数组在处理文本的时候非常有用,数组的形式也是:数组名[下标],比如arr[a],arr[b]。注意,awk数组的下标不仅仅是数字,可以是很多字符。awk数组遍历的时候通常使用 for i in arr,i就是arr的下标。
案例:测试文本如下,将第一列作为唯一标识对第二列进行累加,效果为a 3,b7。
[root@172-0-10-222 myscripts]# cat testfile
a 1
a 2
b 3
b 4
思路:可以将a、b作为awk数组的下标创建一个数组,即arr[a]和arr[b],然后将下标a和b对应的第二列的数字累加到arr[a]和arr[b]上,最后得到的结果就是以a和b为索引,第二列对应的值相加的结果。
[root@172-0-10-222 myscripts]# cat testfile | awk '{arr[$1]+=$2}END{for(i in arr){print i,arr[i]}}'
a 3
b 7
分析:{arr[$1]+=$2}执行完后,arr[a]=3,arr[b]=7。然后遍历该数组,for(i in arr)中,i分别为a和b,arr[a]和arr[b]分别为3和7。
补充:awk数组的遍历还可以使用for(i=1;i<=NR;i++)的方式来处理与行号有关的数组arr[NR]。比如,奇数行偶数行之类的。
shell脚本--awk数组入门案例相关推荐
- shell脚本--awk数组实现去除重复行
去除重复行的方法有很多,这里介绍三种. 测试文本: [root@172-0-10-222 myscripts]# cat testfile andy 123456 hanna 123456 hello ...
- ubuntu及shell脚本常用命令入门
一.Shell命令 二.ubuntu软件安装方法 三.Ubuntu文件系统结构 四.ubuntu磁盘文件 五.Linux下常用的压缩格式 六.linux用户和用户组 七.Ubuntu/Linux文件权 ...
- shell脚本中数组的使用_Shell脚本中的数组
shell脚本中数组的使用 Knowing how to work with arrays in shell scripts will help you work with larger datase ...
- shell脚本基础知识(入门)
简介 本文会全面介绍shell脚本的基础知识. 脚本格式 要把shell命令放到一个"脚本"当中,有一个要求:脚本的第一行必须写成类似这样的格式: #!/bin/bash bash ...
- 超详细shell脚本编程快速入门
文章目录 1.shell简介 1.1 什么是shell 1.2 shell脚本 1.3 运行shell脚本 1.4 shell注释 1.5 shell编写的基本步骤 2.shell变量 2.1 命名变 ...
- shell编程——awk数组循环语法
数组基础 数字变量只能定义一个数,数组可以定义多个数 数组有索引和值,一般的索引是使用0.1.2递增 awk数组也支持使用字符串为索引,类似于字典 Shell最简单的数组定义,为什么Shell数组不多 ...
- Shell脚本编程学习入门
Shell起源于Unix,是Unix和Linux通信的东西 用户和内核之间的"代理",叫做Shell. SHell除了能解释用户输入的命令,把它传递给内核,还可以: 1.调用其他程 ...
- shell脚本的使用入门(超全)
目录 1.shell的概述 2.脚本的调用形式 3.shell语法初识 4.变量 5.预设变量 6.变量的扩展 7.条件测试 8.控制语句 9.函数 1.shell的概述 shell 是一种脚本语言 ...
- shell脚本之基础入门
Shell 教程 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个 ...
最新文章
- python 节点_Python节点
- 利用binlog进行数据库的还原
- Spring 的 BeanFactory 和 FactoryBean 傻傻分不清?
- 岗位内推 | 深睿医疗实验室招聘机器学习实习生
- muduo学习笔记 - 第五章 高效的多线程日志
- 龙芯完成.NET移植稳步推进生态建设
- Linux 开发路线
- 【OJ】洛谷暴力枚举题单题解锦集
- Cetnos环境下inotify+rsync实时同步
- python 检查域名是否可以访问_糖尿病人是否都要做喝糖水的检查?结果可以说明胰岛功能水平吗?...
- Object.prototype.toString方法
- 分享几个设计精美电路图的工具
- C# 使用Magick.NET进行图片格式转换
- Bypass disable_function
- 使用BootStrap制作网页页面
- SQL全称量词使用存在量词替代
- 《敦泰IC之FT6336的TP代码跟读笔记》
- 阿里巴巴Java开发手册及Java代码规约扫描eclipse插件
- Java并发HashMap报错ConcurrentModificationException解决方案
- 如何将AD类型的封装导成Allegro库中的封装
热门文章
- 【Flink实时数仓踩坑记录】Recovery is suppressed by NoRestartBackoffTimeStrategy
- 【Java例题】5.3	字符统计
- 乐视奥比中光深度相机在下其官网下载openni配置后运行例子出现 D: 640x400,C: 640x480错误
- 袋鼠云高教行业数字化转型方案,推进数字化技术和学校教育教学深度融合
- c - 在格式字符串前加下划线_
- CAD二次开发 导出构件生成新dwg
- 好文:如何成为一个独立思考之人?
- attr与removeAttr 、prop与removeProp操作属性节点
- 挖洞经验--绕过cdn寻找真实ip
- 杀毒后无法安装运行瑞星等杀毒软件的解决办法