从excel的大单元格里快速提取内容


我公司的服务器信息会保存在一份高加密的excel里,由于历史遗留问题,里面的格式节选一部分出来是这样的:

wKioL1kdQ16A5vQbAABsNruieMA887.png


注意看,ip地址不分内网外网是放在一个大的单元格里,中间是用空格隔开的,造成了这样的视觉效果。


现在公司需要把所有的服务器重新更换到新的zookeeper,那么使用ansible在批量处理的时候,就需要提取这些服务器的内网ip地址录入到hosts文件里,但是由于服务器实在太多不可能一个一个手动从excel的单元格挑选出“内网IP地址”复制粘贴,那么就需要进行一下批量挑选内网IP地址的操作。


首先我们先把整个IP的单元列里的"(公)""(内)"的字样去掉,然后把整列全部拷贝,粘贴到notepad里,看到它们变成了这样的样子:

wKiom1kdRcqwpgKoAABuQ5CFcj8017.png

在notepad里,双引号之间的内容会被认为同一行,所以这里我们需要使用“替换”功能把所有的双引号去掉,让它变成下面这样:

wKioL1kdSEzQUYJLAABziC5U9lA780.png

这样就可以把上面的内容复制到一个新的excel去,发现每一个内容对应了一行,即一个小单元格:

wKioL1kdSKHCK4TfAAAalKtGr_g168.png

然后我们把第一行染成黄色,第二行染成绿色,当然颜色你可以选择自己的口味,然后使用excel的“格式刷”功能,一拉到底,让他们变成条纹状:

wKiom1kdSZTzZR1NAAA-yQujlwI333.png

然后在excel里找到“筛选”功能,先选择住这一条纹块,然后选择“按颜色筛选“,由于我们需要内网IP,那么我们就留下绿色内容即可,如图:

wKioL1kdSnvAFxiVAAB0B4m0hvQ765.png

得到效果如下:

wKioL1kdSqmjtf5gAAAKBkMSBvU392.png

这样就可以把整个内容拷贝进 ansible的hosts文件里,然后搭配ansible批处理这些内网IP,双管齐下,大大的提升了提取数据的效率。


如果遇到偶尔三行(即中间有空格行)的情况,那么就在notepad那一步的时候,把空格行干掉,不如下图的情况里,第五行和第八行是空格行,可能是当初记录人员复制的时候自带了空格:

wKiom1kdS8TA7BnPAABpLjxJ9u0940.png

如果空格很多的情况,那么就需要批处理一次性的把所有空格都干掉,干掉的方法,还是使用notepad的“替换功能”,选择“正则表达式”,然后把“\n[\s|]*\r”替换成空值就可以了。

wKiom1kdTEvDsL39AABbbXr4ggs395.png




来源:春哥技术博客,欢迎分享,转载请注明出处。(欢迎加春哥团队客服微信号:taike668)

本文地址:https://www.cgtblog.com/jishu/1609.html
上一篇:从苏宁电器到卡巴斯基(后传)第05篇:聊聊      下一篇:张书乐:死活撩不到粉丝G点,内容创业者该