我正在尝试使用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
所以现在它有点清洁......
答案 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可能很有用。一些正则表达式有助于here和here。