linux shell vim处理不同数据库文本之间的转换
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-05-03
作者:张宇,北亚服务器数据恢复中心,转载请联系作者,如果实在不想联系作者,至少请保留版权,谢谢.
还是之前那个XENIX系统,作为某地公安部门的户籍查询与管理系统,记录的是50多万人口的基本信息.这套系统是1989年开发的,当时并未用标准的数据库理念设计(未设计兼容性),只允许查询,打印,或生成输出文本,输出文本的结果大致如下:
参考附件示例中的结构,对这些文本文件通过VIM(或VI),再加上SHELL脚本,将其组织成为标准数据库的可录入格式:
先编个脚本,暂起名为m.sh
内容如下:
#从脚本命令行中获取要操作的文件路径
vi $1<<end >&/dev/null
#替换所有^M换行符(变成LINUX下的标准换行符) :%s/r//g #删除记录之间的表格行 :g/^.─.*/d #在记录号前面加上分隔符,以求后面处理统一 :%s/记录号:/│记录号:/g #去掉一条记录中间的断行,这样,一条记录就只占用一行空间 :%s/n[^$]/│/ #删除第00000号记录,本记录是无用的 :g/记录号: 00000/d #删除表头统计说明 :g/公 安 人 口 信 息 管 理 系 统/d #去掉多余的空格与字段分隔符 :%s/s*││*s*/│/g #删除记录前缀,比如“姓名:张三”变成“张三” :%s/│[^│][^│]*:s*/│/g #删除行首与行尾的字段分隔符 :%s/^│s*//g :%s/│$//g :wq end 将上述脚本保存后,在存放导出.TXT文件的路径下执行: find . -maxdepth 1 -name "*.txt" -exec ./m.sh {} ; 完成后所有记录字段均以"│"为分隔符,同时以行为记录单位重新整理. 剩下的工作就简单多了,如果要移植到其他数据库,按文本格式进行处理就行了. |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: vi入门到精通下一篇: linux下perl连接mysql数据库环境部署详解
关于linux shell vim处理不同数据库文本之间的转换的所有评论