Powershell 中的多个正则表达式匹配 - 在同一行中使用 Add-Content 输出

Multiple regex matches in Powershell - Output with Add-Content in the same line

我有一些 TXT 文件,其中有两行内容我想匹配并添加到另一个文件:

我正在使用这个命令:

Select-String -path '.\*.txt' -Pattern '((?<=Pattern1 ).*|(?<=Pattern2: ).*)' -AllMatches| ForEach-Object{$_.Matches.Value} | Add-Content C:\List.xls

它有效,但在输出 List.xls 上,每个输入文本的两个预期匹配项被放在两行中,如下所示:

Match1
Match2

因此,当我尝试在 Libreoffice Calc 上打开(导入)我的 List.xls 时,它不会让我将 Match1 和 Match2 放在不同的列中。它强制两行。

有什么方法可以更改 Select-String 代码,使匹配结果如下所示:

Match1,Match2

这样,当我打开(导入)List.xls 文件时,Openoffice Calc 将能够在两列中分隔 Match1 和 Match2。

非常感谢。

$myMatches = Select-String -path '.\*.txt' -Pattern '((?<=Pattern1 ).*|(?<=Pattern2: ).*)' -AllMatches |
ForEach-Object {
    $_.Matches.Value
}
($myMatches -join ',') | Add-Content C:\List.csv

-join 使用指定的分隔符 (,) 连接数组元素。

根据 使用 csv 扩展名。使用 [PSCustomObject]Export-Csv 可能是可行的方法,具体取决于您需要在 PowerShell 中执行的其他操作。