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

如何处理千万级Code-Link文本文件,按用户指定阈值筛选链接?

处理大体积Code-Link文本文件,筛选符合次数阈值的链接

需求说明

  • 输入文件每行格式为 Code Link(Code与Link用空格分隔)
  • 支持通过命令行指定阈值N
  • 仅输出出现次数 < N的Code对应的所有Link;若某Code出现次数≥N,其所有Link均不输出

高效解决方案(适配1亿行级大文件)

使用awk工具实现,它支持流式处理,内存占用可控,适合处理超大规模文本:

直接命令行运行

awk -v threshold=你的阈值 '
    NR == FNR { count[$1]++; next }
    count[$1] < threshold { print $2 }
' 你的输入文件.txt 你的输入文件.txt

封装为可执行脚本

创建filter_links.sh文件:

#!/bin/bash
# 检查参数数量
if [ $# -ne 2 ]; then
    echo "用法: $0 <阈值> <输入文件路径>"
    exit 1
fi

# 执行筛选逻辑
awk -v threshold="$1" '
    NR == FNR { 
        # 第一次遍历:统计每个Code的出现次数
        count[$1]++
        next
    }
    # 第二次遍历:输出符合条件的Link
    count[$1] < threshold { print $2 }
' "$2" "$2"

给脚本添加执行权限:

chmod +x filter_links.sh

使用示例

针对你提供的示例输入文件,指定阈值为3:

./filter_links.sh 3 input.txt

输出结果与示例一致:

https://test1.com
https://test2.com
https://testc.com
https://test54.com
https://testds.com
https://testmp.com

原理说明

  1. 第一次遍历文件:统计每个Code的出现次数,存储在count数组中
  2. 第二次遍历文件:检查当前行Code的计数是否小于阈值,满足条件则输出对应的Link

这种方式仅需两次遍历文件,内存占用仅取决于不同Code的数量,即使处理1亿行文件也能高效运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 07:33:24