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 {} \;
 
完成后所有记录字段均以"│"为分隔符,同时以行为记录单位重新整理。
剩下的工作就简单多了,如果要移植到其他数据库,按文本格式进行处理就行了。




本文转自 张宇 51CTO博客,原文链接:http://blog.51cto.com/zhangyu/163433,如需转载请自行联系原作者
目录
相关文章
|
10月前
|
算法 Linux Shell
Linux实用技能:打包压缩、热键、Shell与权限管理
本文详解Linux打包压缩技巧、常用命令与原理,涵盖.zip与.tgz格式操作、跨系统传文件方法、Shell运行机制及权限管理,助你高效使用Linux系统。
Linux实用技能:打包压缩、热键、Shell与权限管理
|
10月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
866 9
|
10月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
934 2
|
12月前
|
Web App开发 缓存 安全
Linux一键清理系统垃圾:释放30GB空间的Shell脚本实战​
这篇博客介绍了一个实用的Linux系统盘清理脚本,主要功能包括: 安全权限检查和旧内核清理,保留当前使用内核 7天以上日志文件清理和系统日志压缩 浏览器缓存(Chrome/Firefox)、APT缓存、临时文件清理 智能清理Snap旧版本和Docker无用数据 提供磁盘空间使用前后对比和大文件查找功能 脚本采用交互式设计确保安全性,适合定期维护开发环境、服务器和个人电脑。文章详细解析了脚本的关键功能代码,并给出了使用建议。完整脚本已开源,用户可根据需求自定义调整清理策略。
1267 1
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
675 3
|
Linux 编译器 开发工具
Linux:详解(yum的使用、vim编辑器命令集合以及gcc/g++编译器的使用)
Linux:详解(yum的使用、vim编辑器命令集合以及gcc/g++编译器的使用)
435 1
|
NoSQL Linux 编译器
Linux:vim调试工具gdb | 常见命令集
Linux:vim调试工具gdb | 常见命令集
415 0
|
Unix Linux 开发工具
在Linux中,有哪些基本的 Vim 命令?
在Linux中,有哪些基本的 Vim 命令?
|
Unix Linux Shell
Linux下vi与vim命令使用与区别
Linux下vi与vim命令使用与区别
657 0
|
存储 Linux 编译器
linux中vim介绍以及常用命令大全
linux中vim介绍以及常用命令大全
470 8