awk数组有关问题

awk数组有关问题

awk数组问题
#!/bin/awk -f
BEGIN{
  record="123#456#789#abc#def#gh#A#B#C#D";
  split(record,tarray,"#")
}
END {
  for (i in tarray) { print tarray[i] }
}
执行程序输出如下:
awktest.awk /dev/null
abc
def
gh
A
B
C
D
123
456
789
请教为什么输出数组的前3个元素,放到最后。而不是最前?


貌似awk中使用for ( i in array)这种方式遍历数组, 采用的是乱序方式 不确定顺序的 
可做如下修改

C/C++ code

#!/bin/awk -f
BEGIN{
record="123#456#789#abc#def#gh#A#B#C#D";
split(record,tarray,"#")
}
END {
for (i=1;i<=length(tarray);i++) { print tarray[i] }
}


2.length是计算字符串长度,不能计算数组的长度;
------------------------------------
拜托你测试一下 好不好?


果然!


不同的操作系统对于length的解释也有差异吧

在Aix下面测试length直接报语法错误了~

能出正确结果就可以了

LZ结贴吧


mark

awk数组有关问题

相关文章:

你感兴趣的文章:

标签云: