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数组入门案例相关推荐

  1. shell脚本--awk数组实现去除重复行

    去除重复行的方法有很多,这里介绍三种. 测试文本: [root@172-0-10-222 myscripts]# cat testfile andy 123456 hanna 123456 hello ...

  2. ubuntu及shell脚本常用命令入门

    一.Shell命令 二.ubuntu软件安装方法 三.Ubuntu文件系统结构 四.ubuntu磁盘文件 五.Linux下常用的压缩格式 六.linux用户和用户组 七.Ubuntu/Linux文件权 ...

  3. shell脚本中数组的使用_Shell脚本中的数组

    shell脚本中数组的使用 Knowing how to work with arrays in shell scripts will help you work with larger datase ...

  4. shell脚本基础知识(入门)

    简介 本文会全面介绍shell脚本的基础知识. 脚本格式 要把shell命令放到一个"脚本"当中,有一个要求:脚本的第一行必须写成类似这样的格式: #!/bin/bash bash ...

  5. 超详细shell脚本编程快速入门

    文章目录 1.shell简介 1.1 什么是shell 1.2 shell脚本 1.3 运行shell脚本 1.4 shell注释 1.5 shell编写的基本步骤 2.shell变量 2.1 命名变 ...

  6. shell编程——awk数组循环语法

    数组基础 数字变量只能定义一个数,数组可以定义多个数 数组有索引和值,一般的索引是使用0.1.2递增 awk数组也支持使用字符串为索引,类似于字典 Shell最简单的数组定义,为什么Shell数组不多 ...

  7. Shell脚本编程学习入门

    Shell起源于Unix,是Unix和Linux通信的东西 用户和内核之间的"代理",叫做Shell. SHell除了能解释用户输入的命令,把它传递给内核,还可以: 1.调用其他程 ...

  8. shell脚本的使用入门(超全)

    目录 1.shell的概述 2.脚本的调用形式 3.shell语法初识 4.变量 5.预设变量 6.变量的扩展 7.条件测试 8.控制语句 9.函数 1.shell的概述 shell 是一种脚本语言 ...

  9. shell脚本之基础入门

    Shell 教程 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个 ...

最新文章

  1. python 节点_Python节点
  2. 利用binlog进行数据库的还原
  3. Spring 的 BeanFactory 和 FactoryBean 傻傻分不清?
  4. 岗位内推 | 深睿医疗实验室招聘机器学习实习生
  5. muduo学习笔记 - 第五章 高效的多线程日志
  6. 龙芯完成.NET移植稳步推进生态建设
  7. Linux 开发路线
  8. 【OJ】洛谷暴力枚举题单题解锦集
  9. Cetnos环境下inotify+rsync实时同步
  10. python 检查域名是否可以访问_糖尿病人是否都要做喝糖水的检查?结果可以说明胰岛功能水平吗?...
  11. Object.prototype.toString方法
  12. 分享几个设计精美电路图的工具
  13. C# 使用Magick.NET进行图片格式转换
  14. Bypass disable_function
  15. 使用BootStrap制作网页页面
  16. SQL全称量词使用存在量词替代
  17. 《敦泰IC之FT6336的TP代码跟读笔记》
  18. 阿里巴巴Java开发手册及Java代码规约扫描eclipse插件
  19. Java并发HashMap报错ConcurrentModificationException解决方案
  20. 如何将AD类型的封装导成Allegro库中的封装

热门文章

  1. 【Flink实时数仓踩坑记录】Recovery is suppressed by NoRestartBackoffTimeStrategy
  2. 【Java例题】5.3 字符统计
  3. 乐视奥比中光深度相机在下其官网下载openni配置后运行例子出现 D: 640x400,C: 640x480错误
  4. 袋鼠云高教行业数字化转型方案,推进数字化技术和学校教育教学深度融合
  5. c - 在格式字符串前加下划线_
  6. CAD二次开发 导出构件生成新dwg
  7. 好文:如何成为一个独立思考之人?
  8. attr与removeAttr 、prop与removeProp操作属性节点
  9. 挖洞经验--绕过cdn寻找真实ip
  10. 杀毒后无法安装运行瑞星等杀毒软件的解决办法