免费注册 查看新帖 |

Chinaunix

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

[Linux] shell得到一个字串,分割该字串循环处理 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-10-15 11:14 |只看该作者 |倒序浏览


需求:有一个地址A,demo_com/ExportData/?action=json,返回结果是

  1. ["demo_com\/ExportData\/Data\/20151013","demo_com\/ExportData\/Data\/20151014","demo_com\/ExportData\/Data\/20151012"]
复制代码
,需要通过shell循环请求这个json串里的每个单独地址B,demo_com/ExportData/Data/20151013,这个同样返回一个json串,

  1. ["demo_com\/ExportData\/Data\/20151013\/Data_6.txt","demo_com\/ExportData\/Data\/20151013\/Data_2.txt","demo_com\/ExportData\/Data\/20151013\/Data_4.txt","demo_com\/ExportData\/Data\/20151013\/Data_7.txt","demo_com\/ExportData\/Data\/20151013\/Data_8.txt","demo_com\/ExportData\/Data\/20151013\/Data_1.txt","demo_com\/ExportData\/Data\/20151013\/id","demo_com\/ExportData\/Data\/20151013\/Data_3.txt","demo_com\/ExportData\/Data\/20151013\/Data_5.txt","demo_com\/ExportData\/Data\/20151013\/Data_10.txt","demo_com\/ExportData\/Data\/20151013\/Data_9.txt"]
复制代码
,现在的需求是使用shell如何实现自动下载B结果里所有的txt文件呢,从A返回的结果里得B地址,因此B的返回结果都不一样。
我是做php开发的,这在php里直接拿来循环数组就可以搞定,但是在shell下不知道使用什么来分割字串然后循环,在此感谢!

论坛徽章:
0
2 [报告]
发表于 2015-10-16 22:51 |只看该作者
用|cut -d '","' -f 取到数组里?

论坛徽章:
84
每日论坛发贴之星
日期:2015-12-29 06:20:00每日论坛发贴之星
日期:2016-01-16 06:20:00每周论坛发贴之星
日期:2016-01-17 22:22:00程序设计版块每日发帖之星
日期:2016-01-20 06:20:00每日论坛发贴之星
日期:2016-01-20 06:20:00程序设计版块每日发帖之星
日期:2016-01-21 06:20:00每日论坛发贴之星
日期:2016-01-21 06:20:00程序设计版块每日发帖之星
日期:2016-01-23 06:20:00程序设计版块每日发帖之星
日期:2016-01-31 06:20:00数据库技术版块每日发帖之星
日期:2016-01-16 06:20:00程序设计版块每日发帖之星
日期:2016-01-16 06:20:00程序设计版块每日发帖之星
日期:2016-01-14 06:20:00
3 [报告]
发表于 2015-10-19 16:21 |只看该作者
  1. list="demo_com\/ExportData\/Data\/20151013","demo_com\/ExportData\/Data\/20151014","demo_com\/ExportData\/Data\/20151012"
  2. for uri in ${list//,/ }; do echo $uri; done
复制代码

论坛徽章:
84
每日论坛发贴之星
日期:2015-12-29 06:20:00每日论坛发贴之星
日期:2016-01-16 06:20:00每周论坛发贴之星
日期:2016-01-17 22:22:00程序设计版块每日发帖之星
日期:2016-01-20 06:20:00每日论坛发贴之星
日期:2016-01-20 06:20:00程序设计版块每日发帖之星
日期:2016-01-21 06:20:00每日论坛发贴之星
日期:2016-01-21 06:20:00程序设计版块每日发帖之星
日期:2016-01-23 06:20:00程序设计版块每日发帖之星
日期:2016-01-31 06:20:00数据库技术版块每日发帖之星
日期:2016-01-16 06:20:00程序设计版块每日发帖之星
日期:2016-01-16 06:20:00程序设计版块每日发帖之星
日期:2016-01-14 06:20:00
4 [报告]
发表于 2015-10-19 16:30 |只看该作者
本帖最后由 yjh777 于 2015-10-19 16:31 编辑

完整代码: 无法验证: 不知道使用wget回来的字符串是否就是 json 列表,没有其他字符
list=$(wget demo_com/ExportData/?action=json)
list=${list//[][]/}  #删除前后的 []
for uri in ${list//,/ }; do
    sublist=$(wget "$uri")
    sublist=${sublist//[][]/}  #删除前后的 []
    for addr in ${sublist//,/ }; do
        wget "$addr"
    done
done[/code]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP