linux awk数组操作详细介绍

Linux awk数组操作详细介绍

什么是awk

awk是一种用于处理文本文件数据的命令行工具,在Linux或Unix系统中广泛使用。awk可以用于数据提取、数据转换、报告生成等多种任务。

什么是数组

数组是一种储存数据的数据结构,在awk中也经常用到。数组以下标和值的形式进行储存和访问。

声明数组

在awk中声明数组时,需要使用关键字array[]。其中array为数组名称,index为下标。

# 使用array关键字声明数组
awk 'BEGIN{ array["apple"]=1; array["banana"]=2; print array["apple"],array["banana"] }'

# 使用[]声明数组
awk 'BEGIN{ arr["apple"]=1; arr["banana"]=2; print arr["apple"],arr["banana"] }'

输出:

1 2

数组的遍历

awk中可以使用for语句遍历数组。

awk 'BEGIN{ array["apple"]=1; array["banana"]=2; for(i in array){ print i, array[i] } }'

输出:

apple 1
banana 2

数组的操作

数组元素的修改

可以使用数组下标进行操作修改数组元素。

awk 'BEGIN{ array["apple"]=1; array["banana"]=2; array["apple"]=3; for(i in array){ print i, array[i] } }'

输出:

apple 3
banana 2

数组元素的删除

可以使用关键字delete删除数组元素。

awk 'BEGIN{ array["apple"]=1; array["banana"]=2; delete array["apple"]; for(i in array){ print i, array[i] } }'

输出:

banana 2

示例说明

示例1:统计单词出现次数

假设存在文件word.txt,内容如下:

apple
banana
apple
orange
orange

以下命令可以统计每个单词出现的次数:

awk '{ array[$1]++ } END{ for(i in array){ print i, array[i] } }' word.txt

输出:

orange 2
banana 1
apple 2

示例2:计算文件指定列的平均值

假设存在文件score.txt,内容如下:

John 90
Mary 85
Tom 78
Bob 92

以下命令可以计算第二列的平均值:

awk '{ sum+=$2 } END{ print sum/NR }' score.txt

输出:

86.25

总结

本文详细介绍了awk数组的操作,包括了数组的声明、遍历和操作,同时给出了两个实际运用的示例。对于需要处理文本数据的任务,awk是一个十分强大的工具。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux awk数组操作详细介绍 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • c#打包程序详解(代码转为安装包)

    以下是关于“C#打包程序详解(代码转为安装)”的完整攻略,过程中包含两个示例。 背景 在C#开发中,我们需要将代码打成安装包,以便于分发和安装。本攻略将介绍如何将C#打包成安装包。 基本原理 在C#中,我们可以使用Visual Studio自带的打包工具来将代码打包成安包。具体步骤如下: 创建安装程序项目。 添加文件和文件夹。 配置安装程序。 生成安装包。 …

    other 2023年5月9日
    00
  • iOS8.1完美越狱插件推荐:ShowCase显示键盘英文大小写

    iOS8.1完美越狱插件推荐:ShowCase显示键盘英文大小写攻略 简介 在iOS 8.1上进行完美越狱后,你可以使用ShowCase插件来显示键盘上的英文大小写状态。这个插件非常实用,特别是当你需要输入密码或者进行英文文本编辑时。下面是详细的攻略,包含了安装和使用ShowCase插件的步骤。 步骤 步骤一:安装ShowCase插件 打开Cydia应用,确…

    other 2023年8月17日
    00
  • monkeyrunner之安卓开发环境搭建教程(1)

    monkeyrunner之安卓开发环境搭建教程(1) 本教程将详细介绍如何搭建monkeyrunner的安卓开发环境。monkeyrunner是一个用于自动化测试和控制安卓设备的工具,它可以模拟用户的操作,执行各种任务。 步骤一:安装Java Development Kit(JDK) 首先,确保你的计算机上已经安装了Java Development Kit(…

    other 2023年7月27日
    00
  • php查询ip所在地的方法

    PHP查询IP所在地的方法攻略 介绍 在PHP中,我们可以使用第三方的IP查询接口或者数据库来查询IP所在地。这些接口或数据库通常提供了一个简单的API,我们可以通过发送HTTP请求或者直接查询数据库来获取IP所在地的信息。 下面是一个完整的攻略,包含了两个示例说明。 步骤 步骤一:选择IP查询接口或数据库 首先,我们需要选择一个可靠的IP查询接口或数据库。…

    other 2023年7月30日
    00
  • Ajax获取回调函数无法赋值给全局变量的问题

    Ajax获取回调函数无法赋值给全局变量的问题攻略 问题描述 在使用Ajax进行异步请求时,有时候我们希望将获取到的数据赋值给全局变量,以便在其他地方使用。然而,由于Ajax是异步执行的,回调函数在数据返回之前就已经执行完毕,导致无法直接将数据赋值给全局变量。这就是所谓的“Ajax获取回调函数无法赋值给全局变量的问题”。 解决方案 为了解决这个问题,我们可以采…

    other 2023年7月29日
    00
  • 基于Java 注解(Annotation)的基本概念详解

    基于Java 注解(Annotation)的基本概念详解 什么是Java注解? Java注解(Annotation),也被称为元数据,是Java语言中的一种特殊语法元素,可以在不改变程序运行逻辑的情况下,对类、方法、变量、参数等各种程序结构进行标注和说明,为程序的正确性、安全性、稳定性、可读性以及各种功能需求的实现提供了基础的支持。 Java注解的种类 Ja…

    other 2023年6月26日
    00
  • 一文搞懂Spring中的Bean作用域

    一文搞懂Spring中的Bean作用域 在Spring框架中,Bean作用域定义了在应用程序中创建和管理Bean实例的方式。Spring提供了多种Bean作用域,每种作用域都有不同的生命周期和可见性。本文将详细介绍Spring中的Bean作用域,并提供两个示例来说明其用法。 Singleton作用域 Singleton作用域是Spring中默认的作用域,它表…

    other 2023年8月19日
    00
  • VC++角色游戏中的人物初始化模块代码实例

    VC++角色游戏中的人物初始化模块代码实例 在VC++角色游戏中,人物初始化模块是十分重要的一部分。由于该模块涉及到人物的属性、状态等多个方面,因此代码实现方式也相对复杂。下面,我们将详细讲解人物初始化模块的完整攻略。 1. 理解人物属性 在人物初始化模块中,我们需要先了解人物的属性。人物属性是指人物的基本信息,如血量、魔法值、攻击力、防御力等等。根据不同的…

    other 2023年6月20日
    00
合作推广
合作推广
分享本页
返回顶部