linux shell+vim处理不同数据库文本之间的转换
|
还是之前那个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 {} ; 完成后所有记录字段均以"│"为分隔符,同时以行为记录 单位重新整理。 剩下的工作就简单多了,如果要移植到其他数据库,按 文本格式进行处理就行了。 (编辑:佛山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


