免费注册 查看新帖 |

Chinaunix

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

还是sed取变量的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-07-06 17:00 |只看该作者 |倒序浏览
这几天出差,没法上网,一直在闭门看shell的文章,对sed也正在强攻,但显然没有吃透,sed越看越迷糊了,而我的初衷想用sed解决的问题却也一直没有找到办法。


  1. 设有一个1.cfg,内容为
  2. A1 = 第一个变量
  3. B1 = 第二个变量
  4. -----
  5. [A1]
  6. 1a
  7. 1b
  8. [/A1]
  9. [B1]
  10. 2a
  11. 2b
  12. [/B1]
  13. ....
复制代码

想写一个脚本,分析这个1.cfg文件的前几行直到遇到-----为止,取出这几行的第一列,即A1,B1放在变量中,即var[1]=A1,var[2]=B1。接下来取出$var到[/$var]之间的值,即第一个为
1a
1b
第二个为var2到第二个[/var2]之间的值,即
2a
2b
我使用bash。
我不知道怎么用sed读入一个变量,我使用这条语句可以实现功能,但变量却无法代入。

  1. sed -n '/[A1]/,/[//A1]/{/[A1]/d;/[//A1]/d;p;}' 1.cfg
复制代码

另外一个问题就是循环数组赋值的问题,由于我使用HPUX的平台,不知道是不是HPUX的问题还是bash的问题,似乎对数组的处理比较弱,网上大侠给我的几个数组的处理办法都不太好使,所以在这个shell中的变量赋值这一部分处理起来只能死做,效率不高的样子。

论坛徽章:
0
2 [报告]
发表于 2004-07-07 14:41 |只看该作者

还是sed取变量的问题

没人帮我看看么?

论坛徽章:
0
3 [报告]
发表于 2004-07-09 09:51 |只看该作者

还是sed取变量的问题

呵呵,我用了一个笨办法,绝对必杀的办法解决了。昨天感冒了,躺在床上想出来的。

  1. $ var=A1
  2. $ var=B1
  3. $ echo 'sed -n "/['$var1']/,/[//'$var2']/{/['$var1'/d;/[//'$var2']/d;p;}" 3.cfg' | sh
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP