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

如何用PowerShell合并ES-ES开头行与上行生成TSV文件

解决PowerShell处理TMX转TSV的换行合并问题

方案一:直接解析TMX XML生成TSV(推荐,避免中间TXT的麻烦)

TMX是标准XML格式,直接解析可以跳过提取TXT的步骤,从根源避免换行问题。假设你的TMX中源语言标记为EN-US,目标语言为ES-ES,执行以下代码:

# 替换为你的TMX文件路径
$tmxFilePath = "C:\your\path\input.tmx"
# 替换为输出TSV路径
$tsvOutputPath = "C:\your\path\output.tsv"

# 加载并解析TMX XML
$tmxXml = [xml](Get-Content $tmxFilePath -Raw)

# 遍历每个翻译单元,提取对应语言的文本并生成TSV行
$tmxXml.tmx.body.tu | ForEach-Object {
    # 提取源语言文本(根据实际lang属性调整)
    $sourceText = ($_.tuv | Where-Object { $_.lang -eq "EN-US" }).seg.Trim()
    # 提取目标语言文本
    $targetText = ($_.tuv | Where-Object { $_.lang -eq "ES-ES" }).seg.Trim()
    # 输出制表符分隔的行
    "$sourceText`t$targetText"
} | Out-File $tsvOutputPath -Encoding UTF8

方案二:处理已提取的TXT文件(解决换行合并问题)

如果必须先提取到TXT再处理,按以下步骤解决换行合并问题:

假设你的TXT结构是:跳过前3行表头后,源文本和ES-ES开头的目标文本交替出现,执行以下代码:

# 替换为你的TXT文件路径
$txtFilePath = "C:\your\path\extracted.txt"
$tsvOutputPath = "C:\your\path\output.tsv"

# 读取所有行,跳过前3行表头,过滤空行
$lines = Get-Content $txtFilePath | Select-Object -Skip 3 | Where-Object { $_ -match '\S' }

# 两两分组合并源行和目标行
for ($i = 0; $i -lt $lines.Count; $i += 2) {
    # 防止最后一行无配对的情况
    if ($i + 1 -ge $lines.Count) { break }
    
    $source = $lines[$i].Trim()
    # 移除开头的"ES-ES "并修剪空格
    $target = $lines[$i + 1] -replace '^ES-ES\s*', '' | Trim()
    
    # 输出TSV行
    "$source`t$target"
} | Out-File $tsvOutputPath -Encoding UTF8

替代方法:用正则一次性处理文本内容

如果TXT中存在不规则换行,可读取整个文本内容用正则匹配配对行:

$txtContent = Get-Content $txtFilePath -Raw

# 移除前3行表头,匹配所有源行+ES-ES目标行的组合
$txtContent -replace '^.*\n.*\n.*\n' |
    Select-String -Pattern '(?s)(.+?)\nES-ES\s*(.+?)(?=\n|$)' -AllMatches |
    ForEach-Object { $_.Matches } |
    ForEach-Object {
        $source = $_.Groups[1].Value.Trim()
        $target = $_.Groups[2].Value.Trim()
        "$source`t$target"
    } | Out-File $tsvOutputPath -Encoding UTF8

为什么之前逐行处理失败?

逐行处理时,每行是独立的对象,无法直接关联前一行的内容。通过读取所有行后按索引分组,或用正则一次性匹配配对行的方式,就能解决换行合并的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 07:50:18