Chinaunix
标题:
能否将shell中的关联数组传入awk?
[打印本页]
作者:
闸北陆小洪
时间:
2012-08-15 19:50
标题:
能否将shell中的关联数组传入awk?
加入shell中有关联数组:
refers=([b]="baidu" [g]="google" [s]="soso")
怎样将$refers传入awk中?
作者:
seesea2517
时间:
2012-08-16 10:17
其实,shell 里没有关联数组……
awk 中引用 shell 的变量有很多的讨论了,不赘述。
作者:
rdcwayx
时间:
2012-08-16 10:25
declare -A refers
refers=([b]="baidu" [g]="google" [s]="soso")
awk -v s1="${refers[*]}" -v s2="${!refers[*]}" 'BEGIN{split(s1,s3," ");split(s2,s4," ");for (i=1;i<=length(s4);i++) refers[s4[i]]=s3[i]; print refers["b"],refers["g"],refers["s"]}'
复制代码
作者:
闸北陆小洪
时间:
2012-08-16 11:00
本帖最后由 闸北陆小洪 于 2012-08-16 11:01 编辑
回复
3#
rdcwayx
追问一下
s2="${!refers[*]}"
复制代码
是啥意思?
作者:
personball
时间:
2012-08-16 11:06
回复
2#
seesea2517
bash 版本4以上已经支持关联数组了
对于lz的问题。。。感觉不能直接使用吧,
如果要在awk中重新构造,还是相当不方便的感觉
作者:
rdcwayx
时间:
2012-08-16 11:13
本帖最后由 rdcwayx 于 2012-08-16 13:15 编辑
闸北陆小洪 发表于 2012-08-16 13:00
回复 3# rdcwayx
追问一下是啥意思?
输出该关联数组的所有下标
作者:
seesea2517
时间:
2012-08-16 18:03
personball 发表于 2012-08-16 11:06
回复 2# seesea2517
是这样啊,我太落后了……
[seesea@UC ~]$ bash --version
GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
复制代码
作者:
闸北陆小洪
时间:
2012-08-17 11:51
回复
6#
rdcwayx
多谢啊
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2