Notepad++数据批量处理技巧


Notepad++是Windows下一款很好用的文本编辑器。对于大量文本内容的查找和批量处理很高效。

Notepad++实用技巧

查找操作技巧

在软件开发过程中,如果我们的代码出现异常,有时候我们需要从日志中提取相应的信息,进行异常补偿。此时我们就可以使用NodePad++的批量操作来快速定位相应的关键信息(比如数据ID等)。

如下例使用Nodepad++打开日志文件,我们在日志文件中使用Ctrl+F查找关键字”axb录音发送延迟队列成功”,然后点击在当前文件中查找按钮进行快速查找。
image-20210604233935233

相应的搜索结果及匹配次数就会显示在Notepad++下方的搜索结果里,如果我们需要进一步的根据搜索结果拿到全部匹配日志中的uniqueId列,我们需要将搜索结果中的记录集复制到一个新文档中继续批量操作
image-20210604234541851

在新文档中,由于日志基本上都是按固定格式排列的,此时我们就可以通过批量操作快速找到我们需要使用的数据。我们依然通过快速获取全部的uniqueId列来进行举例。
image-20210604235550959

批量操作技巧

首先我们将光标定位在uniqueId列等号后,此时将文档下拉到尾部,在最后一行的uniqueId列等号后,按住Alt+Shift,再次点击鼠标,此时会有一条闪烁的直线在所有的uniqueId列等号后(说明操作块行选择完成),此时依然按住Alt+Shift,再次将光标定位到uniqueId列,前边完成块的选择,此时文档块为灰色选中状态。
image-20210605000626855

再次按下Ctrl+C复制当前的选中块,在文档中进行黏贴,就完成了全部uniqueId的统计了。

image-20210605000758427

有的时候我们需要根据这些ID来进行SQL的拼接,Nodepad++比较适合少量简单数据的SQL拼接工作,十分方便。我们将光标定位在第一行行首。在最后一行行首按住Alt+Shift,再次点击鼠标。此时会有一条闪烁的直线在所有行行首,我们直接输入语句(INSERT INTO TABLE VALUES (),它会填充到每个行。

image-20210605001631622

至此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

移除非必需的空白和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

行列转换

行转列

Ctrl + F 选择替换

  查找目标:填写指定的内容

  替换为:\r\n

  查找模式:正则表达式

单击替换或全部替换按钮

列转行

Ctrl + F 选择替换

  查找目标:\r\n

  替换为:不填写或填写指定的内容

  查找模式:正则表达式

单击替换或全部替换按钮

去除多余的空行


文章作者: WangQingLei
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 WangQingLei !
  目录