vim神奇高效功能--批量生成Sql实例
Posted nginx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vim神奇高效功能--批量生成Sql实例相关的知识,希望对你有一定的参考价值。
场景描述
pm同学给了一个网站管理员名单文本文件,每行一个名字,要求帮忙把这些管理员入库。
分析
可以通过写代码,读取文件进行入库,无论用什么语言,这代码逻辑都很容易实现。唯一的问题是代码需要上线后执行,每次上线可是一个大工程,恐怕会被pm同学嘲笑说:“你这技术导入也比我在后台手工录入快不了多少嘛”。
既然上线流程慢,那就绕过去上线,直接写sql,然后用有主库写权限的账号执行sql插入,那现在问题就变为怎么快速的写出sql。
Vim出场
需要实现的就是把如下文件内容
name1
name12
name123
name1234
……
变为一条条sql语句,如下:
insert into admin (name) values ('name1');
insert into admin (name) values ('name12');
insert into admin (name) values ('name123');
insert into admin (name) values ('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实例的主要内容,如果未能解决你的问题,请参考以下文章