在GAWK中扫描数组的所有元素会返回数字而不是值
题
给出以下功能:
function process_pipes(text)
{
split(text,recs,"|");
for (field in recs){
printf ("|%s|\n", field)
}
}
如果输入为:0987654321 | 57300 |找不到错误帐号| GDUMARESQ | 0199 | 9 | N | 0 ||
为什么我得到下面的数字而不是文字?
|4| |5| |6| |7| |8| |9| |10| |1| |2| |3|
解决方案
split
在代码中创建一个数组 recs
, recs [1]
== 0987654321等。
(code in recs)循环的生成索引列表,而不是数组元素。
因此,您需要:
function process_pipes(text)
{
split(text,recs,"|");
for (field in recs){
printf ("|%s|\n", recs[field])
}
}
其他提示
因为
for ... in
为您提供键。使用
printf("|%s|\n",recs[field]);
获取值。
不隶属于 StackOverflow