Notepad++是Windows下一款很好用的文本编辑器。对于大量文本内容的查找和批量处理很高效。
Notepad++实用技巧
查找操作技巧
在软件开发过程中,如果我们的代码出现异常,有时候我们需要从日志中提取相应的信息,进行异常补偿。此时我们就可以使用NodePad++的批量操作来快速定位相应的关键信息(比如数据ID等)。
如下例使用Nodepad++打开日志文件,我们在日志文件中使用Ctrl+F查找关键字”axb录音发送延迟队列成功”,然后点击在当前文件中查找按钮进行快速查找。
相应的搜索结果及匹配次数就会显示在Notepad++下方的搜索结果里,如果我们需要进一步的根据搜索结果拿到全部匹配日志中的uniqueId列,我们需要将搜索结果中的记录集复制到一个新文档中继续批量操作
在新文档中,由于日志基本上都是按固定格式排列的,此时我们就可以通过批量操作快速找到我们需要使用的数据。我们依然通过快速获取全部的uniqueId列来进行举例。
批量操作技巧
首先我们将光标定位在uniqueId列等号后,此时将文档下拉到尾部,在最后一行的uniqueId列等号后,按住Alt+Shift,再次点击鼠标,此时会有一条闪烁的直线在所有的uniqueId列等号后(说明操作块行选择完成),此时依然按住Alt+Shift,再次将光标定位到uniqueId列,前边完成块的选择,此时文档块为灰色选中状态。
再次按下Ctrl+C复制当前的选中块,在文档中进行黏贴,就完成了全部uniqueId的统计了。
有的时候我们需要根据这些ID来进行SQL的拼接,Nodepad++比较适合少量简单数据的SQL拼接工作,十分方便。我们将光标定位在第一行行首。在最后一行行首按住Alt+Shift,再次点击鼠标。此时会有一条闪烁的直线在所有行行首,我们直接输入语句(INSERT INTO TABLE VALUES (),它会填充到每个行。
至此Nodepad++批量操作的技巧就介绍完毕了。
切记:
先定位行,再定义列,就完成了块的选择操作
先定位行就可以完成批量插入操作
去除不必要的换行和空格
有时候我们需要将多行数据转换到一行,可以通过如下操作来实现,如下,我们要将这个SQL转成一行,在Navicat中可以通过简化SQL来实现,在Notepad++中,则通过移除非必需的空白和EOL
来实现。
SELECT
temp.city as '城市',
users.`name` AS '子账号姓名',
users.mobile as '子账号联系方式',
users.created_at as '账号创建时间',
CASE when users.user_status = 2 then '禁用'
when users.user_status = 3 then '离职'
when users.user_status = 0 then '正常'
when users.user_status = 1 then '未激活' end as '账号状态',
temp.group_leader_name AS '主账号姓名',
temp.mobile AS '主账号联系方式'
FROM
users
JOIN (
SELECT
gu.user_id,
uc.group_leader_id,
group_leader_name,
uc.city, u.mobile
FROM
group_user gu
JOIN user_city_area_group uc ON gu.group_id = uc.id join users u on uc.group_leader_id = u.id
AND uc.city IN ('长沙', '广州')
) temp ON users.user_id = temp.user_id
SELECT temp.city as '城市', users.`name` AS '子账号姓名', users.mobile as '子账号联系方式', users.created_at as '账号创建时间', CASE when users.user_status = 2 then '禁用' when users.user_status = 3 then '离职' when users.user_status = 0 then '正常' when users.user_status = 1 then '未激活' end as '账号状态', temp.group_leader_name AS '主账号姓名', temp.mobile AS '主账号联系方式' FROM users JOIN ( SELECT gu.user_id, uc.group_leader_id, group_leader_name, uc.city, u.mobile FROM group_user gu JOIN user_city_area_group uc ON gu.group_id = uc.id join users u on uc.group_leader_id = u.id AND uc.city IN ('长沙', '广州') ) temp ON users.user_id = temp.user_id
行列转换
行转列
Ctrl + F 选择替换
查找目标:填写指定的内容
替换为:\r\n
查找模式:正则表达式
单击替换或全部替换按钮
列转行
Ctrl + F 选择替换
查找目标:\r\n
替换为:不填写或填写指定的内容
查找模式:正则表达式
单击替换或全部替换按钮
去除多余的空行