{"action":"opened","issue":{"url":"https://api.github.com/repos/imaojun/blog-issues/issues/11","repository_url":"https://api.github.com/repos/imaojun/blog-issues","labels_url":"https://api.github.com/repos/imaojun/blog-issues/issues/11/labels{/name}","comments_url":"https://api.github.com/repos/imaojun/blog-issues/issues/11/comments","events_url":"https://api.github.com/repos/imaojun/blog-issues/issues/11/events","html_url":"https://github.com/imaojun/blog-issues/issues/11","id":544894625,"node_id":"MDU6SXNzdWU1NDQ4OTQ2MjU=","number":11,"title":"利用VIM来批量编辑多行文本","user":{"login":"imaojun","id":28778042,"node_id":"MDQ6VXNlcjI4Nzc4MDQy","avatar_url":"https://avatars1.githubusercontent.com/u/28778042?v=4","gravatar_id":"","url":"https://api.github.com/users/imaojun","html_url":"https://github.com/imaojun","followers_url":"https://api.github.com/users/imaojun/followers","following_url":"https://api.github.com/users/imaojun/following{/other_user}","gists_url":"https://api.github.com/users/imaojun/gists{/gist_id}","starred_url":"https://api.github.com/users/imaojun/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/imaojun/subscriptions","organizations_url":"https://api.github.com/users/imaojun/orgs","repos_url":"https://api.github.com/users/imaojun/repos","events_url":"https://api.github.com/users/imaojun/events{/privacy}","received_events_url":"https://api.github.com/users/imaojun/received_events","type":"User","site_admin":false},"labels":[{"id":1766065353,"node_id":"MDU6TGFiZWwxNzY2MDY1MzUz","url":"https://api.github.com/repos/imaojun/blog-issues/labels/%E5%B7%A5%E4%BD%9C%E6%80%BB%E7%BB%93","name":"工作总结","color":"a6ef13","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2020-01-03T08:16:32Z","updated_at":"2020-01-03T08:16:32Z","closed_at":null,"author_association":"OWNER","body":"今天收到一份删除账号的要求。删除条件是删除对应店铺名称的账号。\r\n\r\n对方发的是一个txt文本，并且没有换行，分隔是用`、`号分隔，我总不能手工一个个复制作为查询条件。这样太费事了并且有手工遗漏的风险。刚好VIM是处理文本的利器，于是用VIM来处理以下的文本内容：\r\n\r\n```txt\r\n政企渠道-青海-省政企商客、青海电渠-京东3C随销、政企渠道-青海-西宁-青海民族大学校园政企、政企渠道-青海-西宁-西宁中职院校校园政企、政企渠道-青海-西宁-青海大学校园政企、政企渠道-青海-西宁-青海师范大学校园政企、政企渠道-青海-西宁-大通校园、政企渠道-青海-西宁-湟中校园、政企渠道-青海-西宁-湟源校园、政企渠道-青海-西宁-城北校园、政企渠道-青海-西宁-城西-海晏路校园、政企渠道-青海-西宁-城西-西关大街校园、政企渠道-青海-西宁-城西-胜利路校园、政企渠道-青海-西宁-城西-贾小庄校园、实体渠道-青海-黄南-泽库县王家乡支局、实体渠道-青海-黄南-泽库迎宾路支局、实体渠道-青海-黄南-泽库多禾茂支局、实体渠道-青海-黄南-泽库县和日镇代办点、政企渠道-青海-海西-格尔木校园、政企渠道-青海-玉树-玉树校园、政企渠道-青海-果洛-玛沁校园、政企渠道-青海-西宁-城东-大园山校园、政企渠道-青海-西宁-城东-新千校园、政企渠道-青海-西宁-城东-小商品校园、政企渠道-青海-西宁-城东-滨河校园、政企渠道-青海-海西-德令哈-校园、政企渠道-青海-海西-乌兰校园、政企渠道-青海-海西-都兰校园、政企渠道-青海-海西-天峻校园、政企渠道-青海-海西-大柴旦校园、政企渠道-青海-海西-茫崖校园、政企渠道-青海-海北-刚察校园、政企渠道-青海-海北-门源校园、政企渠道-青海-海北-祁连校园、政企渠道-青海-海北-西海校园、政企渠道-青海-海南-兴海校园、政企渠道-青海-海南-贵德校园\r\n、政企渠道-青海-海南-贵南校园、政企渠道-青海-海南-同德校园\r\n、政企渠道-青海-海南-同德校园、政企渠道-青海-海南-共和校园、政企渠道-青海-海东-化隆校园、政企渠道-青海-海东-循化校园、政企渠道-青海-海东-互助校园、政企渠道-青海-海东-民和校园、政企渠道-青海-海东-乐都校园、政企渠道-青海-海东-平安校园、政企渠道-青海-西宁-城中校园、\r\n青海—海东-西宁丰杰电子科技有限公司、尖扎辰鑫通讯、尖扎志远通讯、空中充值、尖扎县坎布拉镇拉玛杰代办、泽库县宁秀乡尕强村代办点、泽库县多杰通讯、同仁广达通信合作营业厅、同仁一帆通讯合作营业厅、同仁吾屯上庄合作营业厅、同仁西区支局营业厅、同仁宏达通讯合作营业厅、同仁热贡赛格通信有限公司合作营业厅、同仁夏琼北路合作营业厅、同仁智能手机合作营业厅、同仁诺亿手机城代理点、同仁艾博通讯代理点、同仁君飞通讯代理点、同仁兰采乡华吉加更朋综合商店代理点、同仁兰采乡友情小卖部代理点、同仁吾屯下庄代理点、同仁智信手机店代理点、同仁星腾通讯代理点、同仁中山路市场天地通信代理点、泽库县多禾茂生意兴隆代办点、泽库县麦秀镇西大街代办点、泽库县当知手机专卖店代理点、泽库县全网通手机卖场代办点、泽库县和日合作营业厅、泽库县宁秀合作营业厅、泽库县麦秀镇代理点、泽库县多禾茂乡代理点、泽库县平安路代理点、泽库县西卜沙代理点、泽曲镇幸福路代办点、泽库县恰科日乡代办点、泽库县手机名牌店、河南县东大街代理点、赛尔龙吉祥综合服务站、宁木特代理点、同仁志远合作营业厅、同仁夏琼南路合作营业厅、同仁德合隆南路合作营业厅、同仁隆务合作营业厅、青海电渠-青海省-西宁市-互联网渠道运营中心、实体渠道-青海-西宁分公司、湟中县田家寨支局承包合同、湟中实体渠道专营厅、李家山万通电信专营店、湟中县拦隆口支局承包合同、湟中县通海支局承包合同、大通县营业厅、日月支局、塔尔支局、长宁支局、湟源县营业厅、古城支局、人民路支局、315西支局、湟中县多巴支局承包合同、湟中县总寨支局承包合同、湟中县西支局支局承包合同、湟中县上五庄支局承包合同、湟中县大才支局承包合同、湟中县共和支局承包合同、109支局、城关支局、黄家寨支局、解放路支局、东峡支局、西堡支局承包合同、湟中县东支局支局承包合同、湟中县田家寨润鑫电信专营店、湟中县大源伟明电信专营店、玉树-校园政企、果洛-校园政企、黄南-校园政企、格尔木-校园政企、海南-校园政企、海东-校园政企、青海-西宁校园政企、海北-校园政企、海西-校园政企、西宁-校园政企、青海志诚信息技术有限公司、青海-校园政企、青海-政企（中小学校）\r\n```\r\n\r\n根据文本的规则，我只要根据`、`作为换行条件，然后在每行的行首加上单引号`'`，行尾加上单引号`'`和逗号`,`就能作为SQL的` in`函数查询条件了。\r\n\r\n第一步：根据`、`换行，在VIM的命令模式下输入;\r\n```vim\r\n:%s/、/\\r/g\r\n```\r\n这样就可以得到换行后的文本内容了。\r\n\r\n第二步：在头尾加上单引号\r\nVIM实现的方法有很多，我采用的是列选择模式加的。\r\n在头部加上单引号：\r\n<kbd>Ctrl</kbd>+<kbd>v</kbd>进入列选择模式，<kbd>Ctrl</kbd>+<kbd>g</kbd>选到最好一行。\r\n`I`进入头部插入，输入单引号`'`，然后回到VIM正常模式即可。\r\n\r\n现在文本内容行首都加入了单引号，接着在行尾加入单引号。方法同上，但是注意没行的长度不一，这里就不能通过\"A\"在行尾追加引号了。而是应该先用`$`进入行尾，然后再输入`A`在尾部插入单引号和逗号，这样保证了在长度不一的每行行尾插入了单引号。\r\n\r\n完成文本编辑。然后再粘贴到SQL语句中使用即可。效果如下：\r\n```txt\r\n'政企渠道-青海-省政企商客',\r\n'青海电渠-京东3C随销',\r\n'政企渠道-青海-西宁-青海民族大学校园政企',\r\n'政企渠道-青海-西宁-西宁中职院校校园政企',\r\n'政企渠道-青海-西宁-青海大学校园政企',\r\n'政企渠道-青海-西宁-青海师范大学校园政企',\r\n'政企渠道-青海-西宁-大通校园',\r\n'政企渠道-青海-西宁-湟中校园',\r\n'政企渠道-青海-西宁-湟源校园',\r\n'政企渠道-青海-西宁-城北校园',\r\n'政企渠道-青海-西宁-城西-海晏路校园',\r\n'政企渠道-青海-西宁-城西-西关大街校园',\r\n'政企渠道-青海-西宁-城西-胜利路校园',\r\n'政企渠道-青海-西宁-城西-贾小庄校园',\r\n'实体渠道-青海-黄南-泽库县王家乡支局',\r\n'实体渠道-青海-黄南-泽库迎宾路支局',\r\n'实体渠道-青海-黄南-泽库多禾茂支局',\r\n'实体渠道-青海-黄南-泽库县和日镇代办点',\r\n'政企渠道-青海-海西-格尔木校园',\r\n'政企渠道-青海-玉树-玉树校园',\r\n'政企渠道-青海-果洛-玛沁校园',\r\n'政企渠道-青海-西宁-城东-大园山校园',\r\n'政企渠道-青海-西宁-城东-新千校园',\r\n'政企渠道-青海-西宁-城东-小商品校园',\r\n'政企渠道-青海-西宁-城东-滨河校园',\r\n'政企渠道-青海-海西-德令哈-校园',\r\n'政企渠道-青海-海西-乌兰校园',\r\n'政企渠道-青海-海西-都兰校园',\r\n'政企渠道-青海-海西-天峻校园',\r\n'政企渠道-青海-海西-大柴旦校园',\r\n'政企渠道-青海-海西-茫崖校园',\r\n'政企渠道-青海-海北-刚察校园',\r\n'政企渠道-青海-海北-门源校园',\r\n'政企渠道-青海-海北-祁连校园',\r\n'政企渠道-青海-海北-西海校园',\r\n'政企渠道-青海-海南-兴海校园',\r\n'政企渠道-青海-海南-贵德校园',\r\n'政企渠道-青海-海南-贵南校园',\r\n'政企渠道-青海-海南-同德校园',\r\n'政企渠道-青海-海南-同德校园',\r\n'政企渠道-青海-海南-共和校园',\r\n'政企渠道-青海-海东-化隆校园',\r\n'政企渠道-青海-海东-循化校园',\r\n'政企渠道-青海-海东-互助校园',\r\n'政企渠道-青海-海东-民和校园',\r\n'政企渠道-青海-海东-乐都校园',\r\n'政企渠道-青海-海东-平安校园',\r\n'政企渠道-青海-西宁-城中校园',\r\n'青海—海东-西宁丰杰电子科技有限公司',\r\n'尖扎辰鑫通讯',\r\n'尖扎志远通讯',\r\n'空中充值',\r\n'尖扎县坎布拉镇拉玛杰代办',\r\n'泽库县宁秀乡尕强村代办点',\r\n'泽库县多杰通讯',\r\n'同仁广达通信合作营业厅',\r\n'同仁一帆通讯合作营业厅',\r\n'同仁吾屯上庄合作营业厅',\r\n'同仁西区支局营业厅',\r\n'同仁宏达通讯合作营业厅',\r\n'同仁热贡赛格通信有限公司合作营业厅',\r\n'同仁夏琼北路合作营业厅',\r\n'同仁智能手机合作营业厅',\r\n'同仁诺亿手机城代理点',\r\n'同仁艾博通讯代理点',\r\n'同仁君飞通讯代理点',\r\n'同仁兰采乡华吉加更朋综合商店代理点',\r\n'同仁兰采乡友情小卖部代理点',\r\n'同仁吾屯下庄代理点',\r\n'同仁智信手机店代理点',\r\n'同仁星腾通讯代理点',\r\n'同仁中山路市场天地通信代理点',\r\n'泽库县多禾茂生意兴隆代办点',\r\n'泽库县麦秀镇西大街代办点',\r\n'泽库县当知手机专卖店代理点',\r\n'泽库县全网通手机卖场代办点',\r\n'泽库县和日合作营业厅',\r\n'泽库县宁秀合作营业厅',\r\n'泽库县麦秀镇代理点',\r\n'泽库县多禾茂乡代理点',\r\n'泽库县平安路代理点',\r\n'泽库县西卜沙代理点',\r\n'泽曲镇幸福路代办点',\r\n'泽库县恰科日乡代办点',\r\n'泽库县手机名牌店',\r\n'河南县东大街代理点',\r\n'赛尔龙吉祥综合服务站',\r\n'宁木特代理点',\r\n'同仁志远合作营业厅',\r\n'同仁夏琼南路合作营业厅',\r\n'同仁德合隆南路合作营业厅',\r\n'同仁隆务合作营业厅',\r\n'青海电渠-青海省-西宁市-互联网渠道运营中心',\r\n'实体渠道-青海-西宁分公司',\r\n'湟中县田家寨支局承包合同',\r\n'湟中实体渠道专营厅',\r\n'李家山万通电信专营店',\r\n'湟中县拦隆口支局承包合同',\r\n'湟中县通海支局承包合同',\r\n'大通县营业厅',\r\n'日月支局',\r\n'塔尔支局',\r\n'长宁支局',\r\n'湟源县营业厅',\r\n'古城支局',\r\n'人民路支局',\r\n'315西支局',\r\n'湟中县多巴支局承包合同',\r\n'湟中县总寨支局承包合同',\r\n'湟中县西支局支局承包合同',\r\n'湟中县上五庄支局承包合同',\r\n'湟中县大才支局承包合同',\r\n'湟中县共和支局承包合同',\r\n'109支局',\r\n'城关支局',\r\n'黄家寨支局',\r\n'解放路支局',\r\n'东峡支局',\r\n'西堡支局承包合同',\r\n'湟中县东支局支局承包合同',\r\n'湟中县田家寨润鑫电信专营店',\r\n'湟中县大源伟明电信专营店',\r\n'玉树-校园政企',\r\n'果洛-校园政企',\r\n'黄南-校园政企',\r\n'格尔木-校园政企',\r\n'海南-校园政企',\r\n'海东-校园政企',\r\n'青海-西宁校园政企',\r\n'海北-校园政企',\r\n'海西-校园政企',\r\n'西宁-校园政企',\r\n'青海志诚信息技术有限公司',\r\n'青海-校园政企',\r\n'青海-政企（中小学校'\r\n```"}}
{"actor":{"display_login":"imaojun"}}