加入收藏 | 设为首页 | 会员中心 | 我要投稿 佛山站长网 (https://www.0757zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux shell+vim处理不同数据库文本之间的转换

发布时间:2013-05-08 15:47:01 所属栏目:Linux 来源:站长网
导读:还是之前那个XENIX系统,作为某地公安部门的户籍查询与管理系统,记录的 是50多万人口的基本信息。这套系统是1989年开发的,当时并未用标准的数据库 理念设计(
还是之前那个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 {} ;

完成后所有记录字段均以"│"为分隔符,同时以行为记录 单位重新整理。

剩下的工作就简单多了,如果要移植到其他数据库,按 文本格式进行处理就行了。

(编辑:佛山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读