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

代码如下:
<#
$logPath = "C:\Users\tylan\Desktop\mainlog.txt"
#>
function CheckInfo
{
param($logPath)
$logContent = Get-Content $logPath
$reg = "^.+@.+@.+@.+@.+$"
$categories = "",""
foreach($log in $logContent)
{
if($log -match $reg)
{
$partialLog = $log.split("@")
$category = $partialLog[]
$categories += $category
}
}
$sortResult = $categories|Sort-Object|Get-Unique
foreach($cate in $sortResult)
{
$cate|Add-Member -MemberType NoteProperty -Name "cateCount" -Value
}
foreach($category in $categories)
{
foreach($cate in $sortResult)
{
if($category -eq $cate)
{
$cate.cateCount ++
}
}
}
foreach($cate in $sortResult)
{
if($cate -ne "")
{
$cate + " : " + $cate.cateCount
}
}
}
$logPath = "C:\Users\tylan\Desktop\mainlog.txt"
CheckInfo $logPath
测试结果如下:

PowerShell中进行文件读取,信息排序,分类计数。的更多相关文章
- sa命令从/var/account/pacct原始记账数据文件读取信息并汇总
sa命令从/var/account/pacct原始记账数据文件读取信息并汇总
- vs2003 刷新项目失败。无法从服务器中检索文件夹信息
环境: 操作系统:windows server 2003 开发工具:Visual stuadio 2003 FrameWork: 1.1 打开web项目的时候报错 提示 项目刷新失败,无法从服务器 ...
- MFC【exe】工程中的文件大致信息(翻译的)
在工程文件夹中有个readme文件,下面是翻译过来的. ======================================================================== ...
- java中的文件读取和文件写出:如何从一个文件中获取内容以及如何向一个文件中写入内容
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...
- SpringMVC中properties文件读取
SpringMVC给我们提供了用于properties文件读取的类: org.springframework.context.support.ResourceBundleMessageSource 1 ...
- Python3将ipa包中的文件按大小排序
[本文出自天外归云的博客园] 给你个ipa包,解压前输出包大小,解压后把里面的文件按大小排序.代码如下: import os import shutil import zipfile _ipa_zip ...
- 解决SpringBoot jar包中的文件读取问题
前言 SpringBoot微服务已成为业界主流,从开发到部署都非常省时省力,但是最近小明开发时遇到一个问题:在代码中读取资源文件(比如word文档.导出模版等),本地开发时可以正常读取 ,但是,当我们 ...
- cocos2d-x 中 xml 文件读取
实现类 CXmlParse 啥也不说了 直接上硬货 believe yourself 一看就明白 CXmlParse.h #ifndef __C_XML_PARSE__ #define __C ...
- DataAnnotations里DisplayAttribute和 ValidationAttribute 如何从资源文件读取信息,显示多语言
这个是我们常见的AccountModel代码 public class ChangePasswordModel { [Required] [DataType(DataType.Password)] [ ...
随机推荐
- js 取值&赋值-form表单
form表单元素介绍 CreateTime--2016年9月22日10:25:54 Author:Marydon <form> 表单元素. 表单中的元素: <input>表 ...
- 使用poi导出execl
使用poi需要用到的jar包 本文的导出基于execl的模板导出,在大部分表头固定而格式花样比较复杂的建议使用本文介绍的方法(表头固定,只需要填充值) 1.在webroot目录下新建report文件夹 ...
- webservice系统学习笔记2-使用jdk的命令生成本地代码
使用jdk自带的命令wsimport生成远程服务的本地代码 C:\Documents and Settings\Administrator>wsimport -d E:\mhWorkspace\ ...
- from会存在潜在的陷阱
# -*- coding: utf-8 -*- #python 27 #xiaodeng #from会存在潜在的陷阱 #from时,可能会遇到相同变量名,变量会被悄悄覆盖掉, #但是import语句不 ...
- AIX查看系统安装时间和运行时长
$ lslpp -h bos.mp* --AIX系统的安装时间,可以通过bos.mp和bos.mp64文件集的安装时间得知 Fileset Level Action Status Date Time ...
- Apache Hadoop 3.0新版本介绍及未来发展方向
过去十年,Apache Hadoop从无到有,从理论概念演变到如今支撑起若干全球最大的生产集群.接下来的十年,Hadoop将继续壮大,并发展支撑新一轮的更大规模.高效和稳定的集群. 我们此次将向大家全 ...
- mysql高效索引之覆盖索引
概念 如果索引包含所有满足查询需要的数据的索引成为覆盖索引(Covering Index),也就是平时所说的不需要回表操作 判断标准 使用explain,可以通过输出的extra列来判断,对于一个索引 ...
- nyoj------擅长排列的小明
擅长排列的小明 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 小明十分聪明,而且十分擅长排列计算.比如给小明一个数字5,他能立刻给出1-5按字典序 ...
- 通过iscsi协议使用ceph rbd
转自:http://blog.csdn.net/wytdahu/article/details/46545235 ceph很早就已经支持通过iscsi协议来使用rbd,这篇博文对此做下演示,并且使用O ...
- 数据存储的两种方式:Cookie 和Web Storage
数据存储的两种方式:Cookie 和Web Storage 1.Cookie Cookie的作用就像你去超市购物时,第一次给你办张购物卡,这个购物卡里存放了一些你的个人信息,下次你再来这个连锁超市时, ...