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来分割上“:”,抢前两个项目,然后以某种方式将结果转换成东西,我可以管格式化-表。最终结果将如下输出:
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
在此先感谢。
您的答案适用于这种情况,所以我将其标记为已接受,但我仍然希望对我的问题采用更一般的答案。如何使文本变为可以使用format-table命令显示/处理的格式? – shellster
那么,在这种情况下,正则表达式通常是答案。您只需从字符串创建自定义对象,然后可以执行任何您想要的操作:筛选,排序和格式化为表格。我已经以使用$匹配的方式发布了博文,使得它很容易实现:http://becomelotr.wordpress.com/2013/01/07/quick-tip-matches-is-enough/但是有很多方法去皮这只猫。 – BartekB
正是我在找的东西!谢谢! – shellster