我有一些TXT文件,其中有两行内容我想匹配并添加到另一个文件:
我正在使用这个命令:
Select-String -path '.*.txt' -Pattern '((?<=Pattern1 ).*|(?<=Pattern2: ).*)' -AllMatches| ForEach-Object{$_.Matches.Value} | Add-Content C:List.xls
它可以工作,但是在输出List.xls中,来自每个输入文本的两个期望匹配被放在两行中,如下所示:
Match1
Match2
所以,当我试图打开(导入)我的列表。xls在Libreoffice Calc,它不会让我把Match1和Match2在不同的列。它强制两行。
是否有一种方法,我可以改变选择字符串代码,使匹配出来像这样:
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
用指定的分隔符(,
)连接数组元素。
根据Olaf的评论使用csv
扩展。使用[PSCustomObject]
和Export-Csv
可能是一种方式,这取决于你需要在PowerShell中做什么。