本文共 1369 字,大约阅读时间需要 4 分钟。
– Start
awk 不区分索引数组和关联数组,也就是说,下标可以是数字或任何字符串。#! /usr/bin/awk -fBEGIN { # 定义索引数组 names[0]="Shang Bo"; names[2]="Li Si"; names[1]="Zhang San"; # 定义关联数组 country_code_name_map["CN"]="CHINA"; country_code_name_map["US"]="UNITED STATES"; country_code_name_map["JP"]="JAPAN"; # 通过 split 定义数组 str1="a,b,c,d"; split(str1, alphabet, ","); # 对数组排序 asort(names); for (key in names) { # 迭代数组 printf("names[%s]=%s\n", key, names[key]); } # 抽出并排序关联数组下标 asorti(country_code_name_map, country_codes); for (key in country_codes) { printf("country_codes[%s]=%s\n", key, country_codes[key]); } # 删除数组元素 delete names[0]; if (0 in names) { #判断下标是否存在 print "index 0 exists"; } # 删除数组 delete alphabet; for (key in alphabet) { printf("alphabet[%s]=%s\n", key, alphabet[key]); } # 定义多维数组 for (i = 1; i <= 9; i++) { for (j = 1; j <= 9; j++) { table[i, j] = i * j; } } # 迭代多维数组 for (key in table) { printf("table[%s]=%s\n", key, table[key]); } # 迭代多维数组 for (key in table) { split(key, indexs, SUBSEP); # SUBSEP 是一个内置变量,多维数组下标分隔符 printf("table[%s, %s]=%s\n", indexs[1], indexs[2], table[indexs[1], indexs[2]]); }};{};END {};
– 更多参见:
– 声 明:转载请注明出处 – Last Updated on 2015-10-28 – Written by ShangBo on 2015-10-27 – End