vim神奇高效功能--批量生成Sql实例

Posted nginx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vim神奇高效功能--批量生成Sql实例相关的知识,希望对你有一定的参考价值。

场景描述

pm同学给了一个网站管理员名单文本文件,每行一个名字,要求帮忙把这些管理员入库。

分析

可以通过写代码,读取文件进行入库,无论用什么语言,这代码逻辑都很容易实现。唯一的问题是代码需要上线后执行,每次上线可是一个大工程,恐怕会被pm同学嘲笑说:“你这技术导入也比我在后台手工录入快不了多少嘛”。
既然上线流程慢,那就绕过去上线,直接写sql,然后用有主库写权限的账号执行sql插入,那现在问题就变为怎么快速的写出sql。

Vim出场

需要实现的就是把如下文件内容

name1
name12
name123
name1234
……

变为一条条sql语句,如下:

insert into admin (namevalues ('name1');
insert into admin (namevalues ('name12');
insert into admin (namevalues ('name123');
insert into admin (namevalues ('name1234');

实现步骤

1. 首先在每行行尾加上 “ '); ”这三个字符,使用vim的替换命令即可,命令为:

:%s/\n/');\r/g

:” 表示进入底线命令模式

%s” 表示针对全文有效,相应的如果只对当前行或者选中行有效,则用“s”

后面格式就是/old_string/new_string/g。

\n”是old_string,表示要替换掉的旧字符串,此处表示换行符

');\r ” 是new_sting,表示要替换为的新字符串,其中\r也表示新一行

最后的“g” 是额外参数,表示对每行而言是全部替换,如果没有此参数,则只会针对每行的第一个old_string进行替换。

执行此命令后,文本变为:

name1');
name2'
);
name3');
name4'
);

2. 在每行前面加上“insert into admin (name) values ('”。
1)按键“0”将鼠标游标定位到第一行第一列。
2)同时按“ctrl+v”进入纵向编辑模式。
3)按键“j”或者下箭头到最后一行,这样就选中了所有行的行首字符。

4)按键“I”在选中的字符前进行插入。

5)输入“insert into admin (name) values ('”。
6)按键“esc”你就会神奇的发现,所有选择的行首都插入了insert语句。

文章推荐

1


2


3


以上是关于vim神奇高效功能--批量生成Sql实例的主要内容,如果未能解决你的问题,请参考以下文章

从零开始配置vim(27)——代码片段

从零开始配置vim(27)——代码片段

Sublime text3最全快捷键清单

批量生成sqlldr文件,高速卸载数据

Django - 高效地批量创建继承模型

如何对批量的Excel数据生成sql脚本啊?