【发布时间】:2009-03-24 06:37:16
【问题描述】:
这是我正在编写的脚本中的一小段;
Get-Content $tempDir\$todaysLog | Where-Object { $_ -match "" } |
ForEach-Object -Process {
$fields = [regex]::split($_,'@|\s+')
Add-Content -Path $importSource2\$todaysLog -value ($($fields[0]) + "`t" + $($fields[1]) + "`t" + $($fields[2]) + " " + $($fields[3])+ "`t" + "<*sender*@"+($($fields[5])) + "`t" + "<*recipient*@"+($($fields[7])))
}
对包装感到抱歉,本质上它将文件的元素标记为一个数组,然后写出某些元素以及周围的一些其他文本。目的是用无意义的东西代替敏感的发送者/接收者信息。
这是我正在解析的日志文件的示例;
10.197.71.28 SG 02012009 00:00:00
显然我已经替换了示例中的地址信息。上面的部分工作得很好,虽然我意识到它非常昂贵。有什么能想出更便宜的东西,也许是一个选择字符串来替换文本而不是标记/重写它?
干杯
【问题讨论】:
标签: syntax powershell