【问题标题】:Parse a report with powershell使用 powershell 解析报告
【发布时间】:2013-04-08 22:08:47
【问题描述】:

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

我有大约 4,000 份看起来像这样的报告(都在他们自己的 Report.txt 文件中 - 有些有更多字段。我已经剪掉了):

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

这个想法是有一些类似的:

请求的权限: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

所以现在干净了一点……

【问题讨论】:

    标签: parsing powershell


    【解决方案1】:

    如果我有时间,我会放一些代码,但这里有一本路书:

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

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

    2) 获取每个 *.csv 文件 (Get-ChildItem) ,调用您的函数并将结果通过管道传输到 Export-CSV

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2014-11-18
        • 1970-01-01
        • 1970-01-01
        • 2012-06-19
        • 1970-01-01
        • 2022-10-18
        • 1970-01-01
        • 1970-01-01
        • 2012-01-03
        相关资源
        最近更新 更多