免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3493 | 回复: 10

数组下标问题 [复制链接]

论坛徽章:
0
发表于 2009-07-24 11:27 |显示全部楼层
echo "123#456#789 987#654#321" | awk '{split($0,a,"#| " )}{for (i in a) print a}'
987
654
321
123
456
789
这个不是我想得到的结果,我想让其按照顺序输出
123
456
789
987
654
321
我测试输出数组下标为:
echo "123#456#789 987#654#321" | awk '{split($0,a,"#| " )}{for (i in a) print i}'   
4
5
6
1
2
3

自己没想明白,请大家指点下。谢谢。

论坛徽章:
0
发表于 2009-07-24 11:49 |显示全部楼层
  1. echo "123#456#789 987#654#321" |awk 'END{for (j=1;j<=split($0,a,"#| ");j++) print a[j]}'
复制代码

论坛徽章:
0
发表于 2009-07-24 11:59 |显示全部楼层
echo "123#456#987#654#321" | awk '{split($0,a,"#" )}{for (i in a) print a}'      |sort -n

awk用的是hash数组

论坛徽章:
0
发表于 2009-07-24 12:00 |显示全部楼层

回复 #2 ywlscpl 的帖子

麻烦ywlscpl 兄解释下
echo "123#456#789 987#654#321" | awk '{split($0,a,"#| " )}{for (i in a) print i}'   
4
5
6
1
2
3
还有
j<=split($0,a,"#| ")这句split的返回值是什么?

论坛徽章:
0
发表于 2009-07-24 12:09 |显示全部楼层

回复 #4 rhlei 的帖子

  1.      split(s, a [, r])       Splits  the  string  s  into the array a on the
  2.                                regular expression r, and returns the number of
  3.                                fields.
复制代码

论坛徽章:
0
发表于 2009-07-24 14:43 |显示全部楼层

回复 #3 7717060 的帖子

thx~~是hash的缘故啊~

论坛徽章:
0
发表于 2009-07-24 14:45 |显示全部楼层

回复 #5 ywlscpl 的帖子

多谢,明白了。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2009-07-24 16:36 |显示全部楼层
原帖由 rhlei 于 2009-7-24 11:27 发表
echo "123#456#789 987#654#321" | awk '{split($0,a,"#| " )}{for (i in a) print a}'
987
654
321
123
456
789
这个不是我想得到的结果,我想让其按照顺序输出
123
456
789
987
654
321
我测试 ...

楼主杀鸡用牛刀了。^_^
$ echo "123#456#789 987#654#321" | tr '# ' '\n'
123
456
789
987
654
321

论坛徽章:
0
发表于 2009-07-24 16:39 |显示全部楼层
awk的for(x in a)是乱序输出的,好像

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2009-07-24 16:43 |显示全部楼层
原帖由 welcome008 于 2009-7-24 16:39 发表
awk的for(x in a)是乱序输出的,好像

对,关联数组或者通常又叫hash数组,只是一个键(下标)到值的映射表,顺序是不重要的。如果在乎顺序就要另想办法.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP