在每行文件上拆分字符串

时间:2015-01-05 13:19:34

标签: powershell split

我正在尝试拆分文本文件中的每一行,并将除拆分之外的所有文本(在文本“TransactResponse”上)输出到另一个文件(ref.txt):

Get-Content C:\Users\Desktop\batches\XpRef\System.*.log | ForEach-Object -Process { $ split("TransactResponse")[1], "multiline" } | Out-File -FilePath C:\Users\Desktop\batches\XpRef\ref.txt

运行此脚本时,不会生成输出文件的文本。

2 个答案:

答案 0 :(得分:0)

请参阅上面的评论。 示例代码:

$s=gc C:\temp\t.txt
$s -split 'TransactResponse' | where {$_}  

(where子句将过滤空行)

答案 1 :(得分:0)

我会这样做:

Get-Content C:\Users\Desktop\batches\XpRef\System.*.log -ReadCount 1000 |
 ForEach-Object {
 $_ -Match 'TransactResponse' -replace '.*TransactResponse(.+)','$1' |
 Add-Content   C:\Users\Desktop\batches\XpRef\ref.txt }

如果所有行都包含该字符串,则可以省略-Match 'TransactResponse'