没有合适的资源?快使用搜索试试~ 我知道了~
linux shell的here document应用1
需积分: 0 0 下载量 169 浏览量
2022-08-08
17:43:41
上传
评论
收藏 27KB DOCX 举报
温馨提示
试读
8页
2.1 考生基本信息文件在当前目录下有所有考生的基本注册信息文件,每个考生保存为一个文件 2.2 汇总文件为了给竞赛主办方的人员一个清晰的材料,需要将这650个
资源详情
资源评论
资源推荐
2007.9.4
引 言
嵌入文档(Here Documents)技术是 Unix/Linux 平台中脚本语言 BASH 提供的一个特
征,是用于在当前脚本内部处理重定向的一种手段。由于 Unix 从设计之初就是遵循“使用
小而简单的工具进行无缝的集成”的理念,完成一项工作是需要大量的文本处理工具、流处
理工具进行合作,通过标准输入、输出进行连接,将一个工具的处理结果转向另一个工具进
行加工,直到得到最终的处理结果。因此,I/O 重定向(redirection)是 SHELL 脚本的一
个重要语言特征。但是,重定向技术也使整个处理过程显得凌乱、琐碎,对于初学者往往把
握不好重定向的使用时机,甚至滥用重定向,而使得整个脚本里存在大量的中间文件,极大
的损害了脚本语言的“优雅”程度。这是 SHELL 脚本学习过程中的一个常见问题。
为解决这个问题,SHELL 脚本在设计上尽可能的减少中间文件,增加了“Here
Documents”这一特征。Here Documents 提供了在脚本内部保存原始文件,以及在脚本
内部提供重定向的机制,是精简脚本的有效方式,也是反映脚本编程水平的重要特征。在各
种资料中“Here Documents”有不同的翻译名称,例如“嵌入文档”、“内部文档”、“现场文
档”等等。为了兼顾字面上的相近和使用上的形象,本文使用“嵌入文档”这一名称,并通过
若干实例展示这一功能的使用方法。
一、问题的提出
事情是这样的,在 8 月初,笔者负责某信息学竞赛考试服务器的准备和维护工作
(http://gait.buaa.edu.cn:8765),在考试结束需要将服务器上的考试成绩数据导出来,
发送给竞赛主办方。服务器上安装的竞赛考试系统是在 Linux 下开发的专用系统,其中保
存的成绩数据都是采用自定义格式的文本文件,并且由于系统开发并不是非常完善,没有提
供很好的导出成绩的功能。而主办方当然希望看到一个直观的 Excel 文件的总成绩表。因
此,需要紧急的手工处理一下,将服务器上的文本文件转换成 Excel 表出来。在这种情况
下,当然首选的是 SHELL 脚本文件。
在考试系统里面,成绩的统计结果已经可以方便的在一个统计工具的 WEB 页面里查看。这
个统计工具当初设计的还是非常实用的,可以根据考试人员的需求,在页面上查询考试人员
的成绩、分数,等等。但是这个工具当时实现时存在一些问题,它只是列出了成绩信息,而
没有把考试人员的一些基本信息列出来,包括考试人员的联系方式等注册属性。但是这个信
息还是要给主办方的,而且要求都显示在同一个 Excel 文件中。改程序已经来不及了,因
此这次只能手工处理配置文件了。
根据历次的经验,对于这种批量文本的转换处理,使用 SHELL 脚本的效率还是非常高的。
因此立即着手进行。
二、需求和目标
首先要解决的是弄清考试系统里保存的数据文件都是什么格式。通过与系统的开发人员相切
磋,从系统中找出了与本次处理相关的文件格式。
2.1 考生基本信息文件
三更寒天
- 粉丝: 77
- 资源: 327
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0