You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Notepad++中统计并高亮两文件的重复IP:PORT组合?

嘿,这个需求我熟!正好可以用Python写个小脚本一次性搞定统计次数和高亮匹配项两个需求,给你整一套直接能用的方案👇

解决方案:Python实现统计与高亮

1. 先对齐文件格式

先确认下我理解的文件结构没错哈:

  • 文件1示例:user:pass|123.123.123.123:4444| user:pass|456.456.456.456:8080| user:pass|123.123.123.123:4444|
  • 文件2示例:123.123.123.123:4444 456.456.456.456:8080

2. 完整可运行脚本

这个脚本会自动完成:读取文件2的目标IP列表→统计每个IP在文件1的出现次数→生成高亮后的文件1副本(终端里能看到彩色高亮,或者改成Markdown加粗格式)

import re
from collections import defaultdict

# 这里改成你自己的文件路径!
FILE1_PATH = "file1.txt"
FILE2_PATH = "file2.txt"
OUTPUT_HIGHLIGHTED_PATH = "file1_highlighted.txt"

def main():
    # 第一步:读取文件2的目标IP:PORT,去重并过滤空行
    with open(FILE2_PATH, 'r', encoding='utf-8') as f2:
        target_list = [item.strip() for item in f2.read().split() if item.strip()]
    if not target_list:
        print("⚠️ 文件2里没找到有效的IP:PORT组合,请检查内容!")
        return

    # 第二步:统计次数+处理高亮
    count_result = defaultdict(int)
    # 两种高亮模式可选:选一种就行
    # 模式1:终端彩色高亮(红色)
    HIGHLIGHT = '\033[91m'
    RESET = '\033[0m'
    # 模式2:Markdown加粗高亮(适合用Markdown编辑器打开)
    # HIGHLIGHT = '**'
    # RESET = '**'

    with open(FILE1_PATH, 'r', encoding='utf-8') as f1:
        content = f1.read()
        for target in target_list:
            # 用正则转义避免特殊字符干扰,精准匹配整个IP:PORT
            matches = re.findall(re.escape(target), content)
            count_result[target] = len(matches)
            # 替换成高亮内容
            content = content.replace(target, f"{HIGHLIGHT}{target}{RESET}")

    # 第三步:打印统计结果
    print("=== 📊 IP:PORT 出现次数统计 ===")
    for ip_port, count in count_result.items():
        print(f"{ip_port}: {count} 次")

    # 第四步:保存高亮后的文件
    with open(OUTPUT_HIGHLIGHTED_PATH, 'w', encoding='utf-8') as f_out:
        f_out.write(content)
    print(f"\n✅ 高亮后的文件已保存到:{OUTPUT_HIGHLIGHTED_PATH}")

if __name__ == "__main__":
    main()

3. 使用步骤

  1. 把脚本里的FILE1_PATH、FILE2_PATH改成你实际的文件路径
  2. 运行脚本:打开终端,输入python3 count_and_highlight.py(Windows用python count_and_highlight.py)
  3. 终端会直接显示统计结果,同时生成高亮后的文件

4. 小提示

  • 如果文件1里的分隔符不是空格,比如是换行或者其他符号,不用担心,脚本是全局匹配,不影响统计和高亮
  • 要是不需要终端彩色,就把脚本里的模式2注释打开,模式1注释掉,生成的文件用Markdown编辑器打开就能看到加粗的高亮项

内容的提问来源于stack exchange,提问作者k0ngoz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:21:21