免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2924 | 回复: 14
打印 上一主题 下一主题

是否有这样的数组......... [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-09 15:58 |只看该作者 |倒序浏览
有这样一个字符串  MG001:MobileLove:MGLoveCMD:down:  每个字段以冒号分割
STRING="MG001:MobileLove:MGLoveCMD:down:"
我想把其中的每个字段分别赋值给另外几个变量,比如第一个字段赋值给SERV_CODE ,第二个赋值给APPLICATION.............
我知道用awk可以实现,但是感觉如果字段多了就太麻烦了  SERV_CODE=`echo $STRING | awk -F: '{print $1}'`...........
有没有可以把STRING换成一个以冒号分割的数组的办法, 直接用STRING[1]就可以得到他的第一个字段,STRING[2]..........
大侠们进来一定要踩个脚印哦

论坛徽章:
0
2 [报告]
发表于 2008-07-09 16:09 |只看该作者
  1. IFS=: ARRAY=($STRING)
  2. echo ${ARRAY[0]}
复制代码

论坛徽章:
0
3 [报告]
发表于 2008-07-09 16:16 |只看该作者
原帖由 king_boss 于 2008-7-9 15:58 发表
有这样一个字符串  MG001:MobileLove:MGLoveCMD:down:  每个字段以冒号分割
STRING="MG001:MobileLove:MGLoveCMD:down:"
我想把其中的每个字段分别赋值给另外几个变量,比如第一个字段赋值给SERV_CODE ,第二 ...


python可不可以用啊。
要是python的话就很方便 。

论坛徽章:
0
4 [报告]
发表于 2008-07-09 16:25 |只看该作者
awk split

论坛徽章:
0
5 [报告]
发表于 2008-07-09 16:34 |只看该作者
原帖由 无声无息 于 2008-7-9 16:25 发表
awk split


awk的split可以把字段分割好之后赋值给外部的数组变量么???

论坛徽章:
0
6 [报告]
发表于 2008-07-09 16:44 |只看该作者
原帖由 seeLnd 于 2008-7-9 16:09 发表
IFS=: ARRAY=($STRING)
echo ${ARRAY[0]}


能否解释一下呢?
ARRAY=($STRING)   我明白,  BASH的数组是这样定义的
但是IFS=: 是什么意思, IFS是??

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
7 [报告]
发表于 2008-07-09 16:48 |只看该作者
原帖由 king_boss 于 2008-7-9 16:44 发表


能否解释一下呢?
ARRAY=($STRING)   我明白,  BASH的数组是这样定义的
但是IFS=: 是什么意思, IFS是??

  1. IFS    The Internal Field Separator that is  used  for  word  splitting
  2.               after  expansion  and  to  split  lines into words with the read
  3.               builtin  command.   The  default  value  is  ``<space><tab><new-
  4.               line>''.
复制代码

论坛徽章:
0
8 [报告]
发表于 2008-07-09 16:50 |只看该作者
原帖由 seeLnd 于 2008-7-9 16:09 发表
IFS=: ARRAY=($STRING)
echo ${ARRAY[0]}


我执行了 IFS=: ARRAY=($STRING)之后,PATH环境变量由  /usr/local/jdk/bin:/usr/local/tomcat/bin:   变成
/usr/local/jdk/bin /usr/local/tomcat/bin 了,  其中的:冒号都没有了............汗~~~~~~~~

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
9 [报告]
发表于 2008-07-09 16:52 |只看该作者

回复 #5 king_boss 的帖子

try:
  1. IFS=: read SERV_CODE APPLICATION ... <<<"$STRING"
复制代码

论坛徽章:
0
10 [报告]
发表于 2008-07-09 17:12 |只看该作者
原帖由 blackold 于 2008-7-9 16:52 发表
try:  IFS=: read SERV_CODE APPLICATION ...  



完全可以。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP