忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT HPC论坛 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
12下一页
最近访问板块 发新帖
查看: 3626 | 回复: 19

[文本处理] 如何替换数组 [复制链接]

论坛徽章:
0
发表于 2016-05-19 13:09 |显示全部楼层
文件game.conf的内容:
game=(
"douyu"
"huya"
"xiongmao"
)
文件my.sh中有个变量
game=("test" "test2")

现在的需求是, 我要在my.sh中把game.conf中的内容原原本本的复制过来,使得my.sh中的变量变为
game=(
"douyu"
"huya"
"xiongmao"
)

那么,在my.sh这个shell脚本中应该怎么做?

论坛徽章:
0
发表于 2016-05-19 13:12 |显示全部楼层
看一看, 顶一下

论坛徽章:
115
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07巳蛇
日期:2014-05-09 16:43:18巨蟹座
日期:2014-10-23 17:48:38子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59
发表于 2016-05-19 13:20 |显示全部楼层
回复 1# wsshopping

$ bash my.sh
before: test test2
after : douyu huya xiongmao

$ cat game.conf
game=(
"douyu"
"huya"
"xiongmao"
)

$ cat my.sh
game=("test" "test2")
echo "before: ${game[@]}"
. game.conf
echo "after : ${game[@]}"

论坛徽章:
0
发表于 2016-05-19 14:28 |显示全部楼层
回复 3# jason680


谢谢回复, 你这个满足不了我的需求,  我需要的是真实的替换 my.sh中的game变量的内容, 使用 . game.conf的话,还是依赖game.conf这个文件;我需要的是改变my.sh中的game变量的内容:
执行my.sh前,显示
cat my.sh:
game=("test" "test2")

执行my.sh后,显示
cat my.sh:
game=(
"douyu"
"huya"
"xiongmao"
)

不能使用source或者.



   

论坛徽章:
115
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07巳蛇
日期:2014-05-09 16:43:18巨蟹座
日期:2014-10-23 17:48:38子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59
发表于 2016-05-19 14:33 |显示全部楼层
回复 4# wsshopping

复制过来 ==> cp
   

论坛徽章:
0
发表于 2016-05-19 14:41 |显示全部楼层
回复 5# jason680


额,,,, 要脚本实现额,  只能复制这个变量, 怎么破


   

论坛徽章:
361
摩羯座
日期:2014-05-06 10:32:5315-16赛季CBA联赛之广夏
日期:2016-01-12 17:08:14狮子座
日期:2014-05-05 22:31:17金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09处女座
日期:2014-05-12 09:23:11
发表于 2016-05-19 15:01 |显示全部楼层
回复 1# wsshopping

  1. #!/bin/bash

  2. eval `cat game.conf`
  3. echo ${game[@]}
复制代码

论坛徽章:
31
荣誉会员
日期:2011-11-23 16:44:17丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17天蝎座
日期:2014-08-21 17:18:48丑牛
日期:2014-08-29 16:06:45天秤座
日期:2014-08-29 10:12:18天秤座
日期:2014-08-26 16:18:20双子座
日期:2014-07-30 11:38:27寅虎
日期:2014-08-04 10:24:12IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:00
发表于 2016-05-19 17:07 |显示全部楼层
sed -i ?

论坛徽章:
2
操作系统版块每日发帖之星
日期:2016-05-16 06:20:0015-16赛季CBA联赛之八一
日期:2016-05-18 15:38:22
发表于 2016-05-20 10:40 |显示全部楼层
sed不太好使,game.conf带回车。我用sed "s/game=([^)]*)/$game/"会报错。
总觉得不管在my.sh里面写上啥改变my.sh文件的脚本,最终结果都得把这部分command给删掉才行啊。
这个更像一个考试题,而不是一个实际遇到的问题。

求职 : Linux运维
论坛徽章:
10
丑牛
日期:2013-11-22 14:59:41数据库技术版块每日发帖之星
日期:2016-08-13 06:20:0015-16赛季CBA联赛之山西
日期:2016-08-03 10:35:38数据库技术版块每日发帖之星
日期:2016-07-31 06:20:002016科比退役纪念章
日期:2016-06-27 14:08:14数据库技术版块每日发帖之星
日期:2016-06-02 06:20:0015-16赛季CBA联赛之广东
日期:2016-05-20 15:06:2215-16赛季CBA联赛之深圳
日期:2016-01-29 16:27:402015亚冠之阿尔艾因
日期:2015-09-08 16:35:3615-16赛季CBA联赛之北京
日期:2017-03-28 18:45:36
发表于 2016-05-20 16:11 |显示全部楼层
回复 7# Herowinter
请问,这里面的@代表什么意思?是变量吗?谢谢!


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

本版积分规则

10张SACC2017门票等你来拿~

在数字化转型时代,云已成为万物智能的数字化大脑。而随着大数据应用、人工智能、移动互联网等技术的飞速发展,“智慧 +” 的概念正在深入到各行各业,提升企业效率,释放商业潜能,创造全新机遇。作为国内顶级技术盛会之一,2017 中国系统架构师大会(SACC2017)将于 10 月 19-21 日在北京新云南皇冠假日酒店震撼来袭。今年,大会以 “云智未来” 为主题,云集国内外顶级专家,围绕云计算、人工智能、大数据、移动互联网、产业应用等热点领域展开技术探讨与交流。本届大会共设置 2 大主会场,18 个技术专场;邀请来自互联网、金融、制造业、电商等多个领域,100 余位技术专家及行业领袖来分享他们的经验;并将吸引 4000 + 人次的系统运维、架构师及 IT 决策人士参会,为他们提供最具价值的交流平台。
----------------------------------------
优惠时间:2017年10月19日前

活动链接>>
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP