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技术站