使用powershell解析报告

时间:2013-04-07 00:21:43

标签: parsing powershell

我正在尝试使用powershell收集一些统计信息。

我有大约4,000个看起来像这样的报告(全部在他们自己的Report.txt文件中 - 有些包含更多字段。我已经狙击它了):

我想做的事(大声思考)是将每个[]并使其成为一个csv标题,然后在该标题下添加每个项目。然后我可以对它运行简单的count语句并提取一些数据。也许有更好/更简单的方法?

想法是有一些像:

请求的权限:android.permission.INTERNET 3,562 of 4,000 请求权限:android.permission.READ_SMS 1 of 4,000 等...

到目前为止,我已经删除了字符串,因此它不再有空格和*。

[ Package name ]
 * com.software.application

[ Requested Permissions ]
 * android.permission.INTERNET
 * android.permission.READ_PHONE_STATE
 * android.permission.READ_SMS
 * android.permission.RECEIVE_SMS
 * android.permission.SEND_SMS
 * android.permission.WAKE_LOCK
 * android.permission.WRITE_EXTERNAL_STORAGE
 * com.google.android.c2dm.permission.RECEIVE
 * com.software.application.permission.C2D_MESSAGE

[ Responsible API calls for used Permissions ]
 * android/app/NotificationManager;->notify
 * android/content/Context;->sendBroadcast
 * android/content/Context;->startService
 * android/os/PowerManager$WakeLock;->acquire
 * android/os/PowerManager$WakeLock;->release
 * android/telephony/SmsManager;->sendTextMessage

[ Potentially dangerous Calls ]
 * getSystemService
 * HttpPost
 * sendSMS

当前输出示例:

[PotentiallydangerousCalls]
getSystemService
HttpPost
sendSMS

所以现在它有点清洁......

2 个答案:

答案 0 :(得分:1)

如果我有时间,我会提供一些代码,但这是一本旅行手册:

1)编写一个函数(CsvToObject),它获取csv文件的路径和名称,并返回一个带有每个[value]的属性的PSObject

  • 此函数可以利用switch ... case PowerShell结构和正则表达式以及文件用法。

2)获取每个* .csv文件(Get-ChildItem),调用你的函数并将结果传递给Export-CSV

答案 1 :(得分:0)

您当前的输出示例的结构类似于ini文件。这个Scripting Guy post on ini files可能很有用。一些正则表达式有助于herehere