【问题标题】:Notepad++ deleting lines containing duplicate wordsNotepad++ 删除包含重复单词的行
【发布时间】:2013-09-12 15:42:39
【问题描述】:

我有一个 .txt 文档,其中包含一个单词,后跟一行中的日期,以此类推。

Notepad++如何识别不同行中的相同单词并删除重复行?

【问题讨论】:

标签: duplicates notepad++


【解决方案1】:

不是直接回答您的问题,但我根据标题找到了这篇文章。我只是想删除重复的行。我找到了一个简单的方法来做到这一点here

  1. 标记所有文本 (CTRL+A)。单击 TextFX → 单击 TextFX 工具 → 检查 +Sort 仅输出 UNIQUE(在列)行(如果尚未检查)。
  2. 单击 TextFX → 单击 TextFX 工具 → 单击对不区分大小写的行排序(在列处)

【讨论】:

    【解决方案2】:

    假设相同单词的相同出现日期可能不同,并且您希望保留文件中第一个出现的日期,那么这应该可以工作(确保您的文件以新行结尾):

    1. 转到“替换”对话框(您可以按 Ctrl+F 并转到替换选项卡)。
    2. 在底部的“搜索模式”中选择“正则表达式”(确保未选择“.matches newline”)。
    3. 在“查找内容:”字段中输入(\s*\w+ )(.*\r\n)((.*\r\n)*)\1.*\r\n
    4. 在“替换为:”字段中输入\1\2\3
    5. 单击“替换”直到不再出现(“全部替换”似乎对此不起作用,也许存在更好的正则表达式可以使用,但我没有找到它)。

    我已经在文件上对此进行了测试:

    testing330     05:09-24/08
    whatever     10:55-25/08
    testing     15:57-26/08
    testing667     19:22-30/08
    linux     00:29-31/08
    testing330     00:29-31/08
    windows     12:25-31/08
    

    结果是:

    testing330     05:09-24/08
    whatever     10:55-25/08
    testing     15:57-26/08
    testing667     19:22-30/08
    linux     00:29-31/08
    windows     12:25-31/08
    

    【讨论】:

    • 这正是我所需要的,但是格式有点不同,对于这个例子你会怎么做:pastebin.com/ZbtGeaTX 注意 testing330 是唯一的重复,在不同的时间(保持第一)跨度>
    • 我发布的方法也应该适用于您的示例(假设这些条目中的每一个都在单独的行上)。它不关心日期的格式。但是,如果您在 *nix 系统上运行它,则可能需要进行一些更改(将代码中的每个 \r\n 替换为 \n 就可以了)。
    • edit :已修复以允许在每行的开头留有空格。还对其进行了更改,因此它将删除整个重复行,而不仅仅是其上的文本(为了使其正常工作,请确保文件以新/空行结尾)
    • 有什么办法不留下一次吗?
    【解决方案3】:

    您可以在 Windows 上使用 EditPlus 或在 Mac 上使用 TextWrangler 轻松排序和删除重复行。

    在Notepad++ 6.5.2(免费)之后,您可以对行进行排序,或者您可以使用“插件管理器”安装插件“TextFX Characters”。

    TextFX 包含许多用于转换所选文本的功能。 特色: * 交互式大括号匹配 * 报价处理 * 字符 大小写交替 * 文本重新换行 * 列排列 * 向下填充文本 * 向下插入计数器文本 * 文本到代码转换 * 数字 转换 * URI & HTML 编码 * HTML 到文本转换 * 提交 文本到 W3C * 文本排序 * Ascii 图表 * 前导空白修复 * 自动关闭 HTML 和大括号主页:http://textfx.no-ip.com/textfx/

    【讨论】:

    • TextFX 现已弃用。
    【解决方案4】:

    就我个人而言,这是我遵循的步骤。假设您在 A 列中只有 1 列数据。

    1. 将数据导入 Excel。
    2. 对数据进行排序。
    3. 插入一个检查重复项的函数。单元格 B2 为:=IF(A2=A1,"Duplicate","")
    4. 选择所有 B 列。
    5. 复制。
    6. 粘贴特殊并粘贴值。
    7. 根据 B 列对数据进行排序。
    8. 删除所有标有“重复”的。
    9. 将数据复制回 Notepad++

    我以为有这样的插件,但现在找不到了。 Otherwise, this link may help you.

    【讨论】:

    • 使用TestFX帮助很大,即使我可以使用excel,复制粘贴所有文档也需要很多时间。
    猜你喜欢
    • 1970-01-01
    • 2016-03-09
    • 2018-06-11
    • 2020-05-11
    • 2018-12-31
    • 2022-11-07
    • 1970-01-01
    • 2012-12-27
    • 1970-01-01
    相关资源
    最近更新 更多