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

如何使用Powershell基于图片ID去除TXT文件中的重复行

PowerShell按指定字段对TXT文件行去重方案

实现思路

  • 直接逐行读取原始TXT文件,不需要转CSV格式
  • 按/拆分每行内容,取第一个斜杠后的第二个元素作为图片ID
  • 用哈希表记录已经出现过的ID,遇到未记录的ID就保留当前行,重复ID直接跳过
  • 最终将所有保留的行输出到新文件

可用代码

# 替换为你的原始文件路径
$inputFile = "C:\path\to\your\original.txt"
# 替换为你要保存的去重后文件路径
$outputFile = "C:\path\to\your\output.txt"
# 用于记录已出现ID的哈希表
$existedId = @{}

Get-Content -Path $inputFile | ForEach-Object {
    $splitArr = $_ -split '/'
    # 校验行格式合法再处理
    if ($splitArr.Length -ge 2) {
        $currentId = $splitArr[1]
        if (-not $existedId.ContainsKey($currentId)) {
            # 首次出现的ID,输出该行并标记ID已存在
            $_
            $existedId[$currentId] = $true
        }
    }
} | Set-Content -Path $outputFile -Encoding UTF8

说明

  1. 你之前直接用Unique参数没有生效,是因为该参数默认是对整行内容做去重判断,仅会删除完全相同的行,无法针对你指定的ID字段做去重。
  2. 上述脚本默认保留每个ID首次出现的行,符合你「保留任意一行」的要求。如果需要保留最后出现的行,可以先遍历所有行把ID和对应行存入哈希表,最后再输出所有哈希表的值即可。
  3. 如果你的原始文件不是UTF8编码,可以把Set-Content后的-Encoding UTF8修改为-Encoding Default适配系统默认编码,避免输出乱码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 09:06:02