1

我正在尝试在 Powershell 中做一些应该很简单的事情,但我一生都无法弄清楚。我有一个看起来像这样的日志文件:

item1:some text 1:more junk I don't care about.
item2:some text 2:more junk I don't care about.
item3:some text 3:more junk I don't care about.
...

我想使用 Powershell 拆分“:”,获取前两项,然后以某种方式将结果转换为我可以通过管道传输到 Format-Table 的内容。最终结果将像这样输出:

Column A           Column B
--------           --------
item1              some text 1
item2              some text 2
item3              some text 3
...

我绝不是 Powershell 专家,所以请随时清理我的代码。这是我目前拥有的(我尝试了几种变体):

Get-Content C:\Temp\test.log | %{
    $data = $_.split(":"); 
    $hashString = 'a = ' + $data[0] + " `n b = " + $data[1]; 
    ConvertFrom-StringData -StringData $hashString
} | ft @{Label="Column A"; Expression={$_.a}},  @{Label="Column B"; Expression={$_.b}} -auto

提前致谢。

4

1 回答 1

4

我会为此使用 Import-Csv ... :)

Import-Csv -Path your.log -Delimiter : -Header ColumnA, ColumnB

您可以使用任何字符作为分隔符,包括冒号。

于 2013-03-15T07:57:15.077 回答