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

使用PowerShell统计TXT文件中路径二级动态字符串的出现次数

统计URL路径中第二位字符串的出现次数

核心思路

用**哈希表(字典)**实现高效计数:哈希表的键存提取到的动态字符串,值存对应出现次数,遍历完所有URL后,再将键值对格式化为字符串;次数写入结果文件。

具体实现步骤

  • 初始化计数容器:创建空哈希表,用于存储字符串与对应次数的映射
  • 逐行读取文件:避免一次性加载35万条数据到内存,逐行处理更节省资源
  • 提取目标字符串并容错:拆分路径时移除空条目,同时判断路径格式是否合法,防止索引越界报错
  • 更新计数:如果字符串已在哈希表中,计数+1;否则将计数初始化为1
  • 输出结果:遍历哈希表,将键值对按要求格式拼接后写入文件

完整PowerShell脚本示例

# 初始化哈希表
$counts = @{}

# 逐行读取URL文件,处理每一行
Get-Content -Path ".\urls.txt" | ForEach-Object {
    # 跳过空行
    if ([string]::IsNullOrWhiteSpace($_)) { return }
    
    # 拆分路径,移除空条目(处理开头/结尾斜杠的情况)
    $pathParts = $_.Split("/", [System.StringSplitOptions]::RemoveEmptyEntries)
    
    # 确保路径至少有3段(比如images/STRINGA/xxx.jpg),避免索引越界
    if ($pathParts.Length -ge 2) {
        $targetStr = $pathParts[1]
        # 更新计数
        if ($counts.ContainsKey($targetStr)) {
            $counts[$targetStr]++
        } else {
            $counts[$targetStr] = 1
        }
    }
}

# 将统计结果格式化为"字符串;次数"并写入文件
$counts.GetEnumerator() | ForEach-Object {
    "$($_.Key);$($_.Value)"
} | Out-File -Path ".\result.txt" -Encoding UTF8

额外优化提示

  • 如果源文件编码不是默认ANSI,给Get-Content加-Encoding参数指定编码(比如-Encoding UTF8)
  • 若要提升处理速度,可使用-ReadCount 1000批量读取行后批量处理,但逐行处理35万条数据已足够流畅
  • 可添加进度监控,比如每处理1万条打印一次状态,方便跟踪进度

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 02:31:15