PowerShell中进行文件读取,信息排序,分类计数。

这是国外某大学QA的一道作业题,读取mainlog文件中的每一行信息,并获取有效的信息,也就是每条信息中第四个@后面的内容,然后进行分类与计数,要求是用Perl写,但我是用PowerShell完成的,文件截图如下:

代码如下:

 1 <#
 2     $logPath = "C:\Users\tylan\Desktop\mainlog.txt"
 3 #>
 4 function CheckInfo
 5 {
 6     param($logPath)
 7     $logContent = Get-Content $logPath
 8     $reg = "^[email protected][email protected][email protected][email protected]+$"
 9     $categories = "",""
10     foreach($log in $logContent)
11     {
12         if($log -match $reg)
13         {
14             $partialLog = $log.split("@")
15             $category = $partialLog[4]
16             $categories += $category
17         }
18     }
19     $sortResult = $categories|Sort-Object|Get-Unique
20     foreach($cate in $sortResult)
21     {
22         $cate|Add-Member -MemberType NoteProperty -Name "cateCount" -Value 0
23     }
24     foreach($category in $categories)
25     {
26         foreach($cate in $sortResult)
27         {
28             if($category -eq $cate)
29             {
30                 $cate.cateCount ++
31             }
32         }
33     }
34     foreach($cate in $sortResult)
35     {
36         if($cate -ne "")
37         {
38             $cate + " : " + $cate.cateCount
39         }
40     }
41 }
42 $logPath = "C:\Users\tylan\Desktop\mainlog.txt"
43 CheckInfo $logPath

测试结果如下:

时间: 2024-12-15 23:40:39

PowerShell中进行文件读取,信息排序,分类计数。的相关文章

vs2003 刷新项目失败。无法从服务器中检索文件夹信息

环境: 操作系统:windows server 2003 开发工具:Visual stuadio 2003 FrameWork: 1.1 打开web项目的时候报错   提示 项目刷新失败,无法从服务器中检索文件夹信息 从网上搜索很多解决方案还是没有得到解决 ,最后查到发现是i应用程序的权限问题 在配置网站的时候需要选择执行包括脚本

MFC【exe】工程中的文件大致信息(翻译的)

在工程文件夹中有个readme文件,下面是翻译过来的. ======================================================================== MICROSOFT FOUNDATION CLASS LIBRARY : Down1========================================================================微软基础类库 AppWizard has created this D

java中的文件读取和文件写出:如何从一个文件中获取内容以及如何向一个文件中写入内容

1 2 3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.File; 6 import java.io.FileInputStream; 7 import java.io.FileNotFoundException; 8 import java.io.FileOutputStream; 9 import java.io.IOException; 10 import java.io.

Python3将ipa包中的文件按大小排序

给你个ipa包,解压前输出包大小,解压后把里面的文件按大小排序.代码如下: import os import shutil import zipfile _ipa_zip_path = lambda ipa_path: ipa_path.replace('.ipa', '.zip') _file_size = lambda file_path: os.path.getsize(file_path) / 1024 / 1024 def unzip(zip_path: str) -> str: di

HTML5---17.html5中的文件读取

FireReader 文件读取器 构造函数--->生产对象 对象:属性 方法 事件 属性: result 方法: readAsText():结果是文本 readAsBinaryString():结果是二进制的字符串 readAsDataURL():结果是数据地址 事件:onload 读取成功的事件 应用场景:即时预览 原文地址:https://www.cnblogs.com/Tobenew/p/10509621.html

使用SharedPreferences将姓名和年龄信息保存在文件中,并读取信息

第一个是XML文件: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:id="@+id/activi

关于VS2013优化后MFC中对文件读取失败的解析(debug下可以,release下失败)

经测试: 错误来源于:如下程序,在vs2010下使用GetFileName(),文件可以成功读取,但在VS2013下,使用GetFileName()读取文件在debug下可以,但release下失败,改为GetPathName()后,便可以成功编译. CFileDialog filePCloudDlg(TRUE); filePCloudDlg.m_ofn.lpstrTitle=_T("选择点云文件"); filePCloudDlg.m_ofn.lpstrFilter=_T("

JAVA 中的文件读取

1. InputStream / OutputStream处理字节流抽象类:所有输入.输出(内存)类的超类,一般使用 FileInputStream / FileOutputStream 输出字符 utf8 编码:如 4431 2. InputStreamReader / OutputStreamWriter处理字符流抽象类  InputStreamReader:字节流通向字符流的桥梁,将字节流转换为字符流  OutputStreamWriter:字符流通向字节流的桥梁,将字符流转换为字节流 输

PowerShell 中进行列表展示的排序-倒序

Order Your Output by Easily Sorting Objects in PowerShell ★★★★★ ★★★★ ★★★ ★★ ★ January 10, 2012 by The Scripting Guys // 9 Comments 0 0 0 Summary: Much of the time, there is no guarantee to the order in which Windows PowerShell returns objects. This b