PowerShell实现在多个文件中检索关键字功能

所属分类: 脚本专栏 / PowerShell 阅读数: 726
收藏 0 赞 0 分享

这几天在看Powershell,感觉挺强大的,一个小任务,是用powershell实现多个文件中检索万行记录的脚本。刚开始想用用Get-Content 结合Where-Object来实现,发现检索的结果太慢,而且检索的条目显示出来后不知道来自哪个文件,这个虽然也容易实现,但是经过对多种方法的探索,我发现竟然一条强大的命令竟然可以实现所有这些需求,而且超快的。

一般用于IIS日志分析,由于主要是介绍这个PS命令的,IIS日志是从服务器端抓取的,这里仅就是测试用的一半数据。

首先进入到相应目录,查看当前目录下的文件,其中四个log文件是用来测试的。如下:

然后就用下面这条命令实现那个强大的功能:

比如要搜索关键字write,则输入write回车之后,搜索到的结果如下(仅截取部分,这里由于隐私,日志文件是俺造的,只是数据量比较大,内容纯属虚构~~):

可以将这条语句赋给一个临时变量,来查看一下在这瞬间查出了多少数据:

其实也不多,4个日志文件中瞬间查出了500条数据,其实这个看不出来,因为我造的数据量还不够大。。。

下面对这条强大的命令简单解释下:

整体其实就是使用了Select-String这个命令,具体用法参考:

http://technet.microsoft.com/zh-cn/library/dd315403.aspx

Get-ChildItem是得到当前面目录下的所有项,然后通过管道| 输入给?(就是Where-Object的别名)来筛选,及筛选当前目录下的log文件,$_代表当前对象,即前面查出的结果,-like使用了模式匹配,$(Read-Host)是从控制台读入,类似C#中的ReadLine()(相应的标准输出是Write-Host),即当用户输入一个关键字后,命令会从后向前的执行。

由于是刚入门,如有出错,大神们多多指教。

更多精彩内容其他人还在看

Powershell学习笔记--使用正则表达式查找文件

本文介绍PowerShell中使用正则表达式的查找文件的方法,PowerShell的正则表达式与微软其它语言的正则表达式是一样的,使用非常方便。
收藏 0 赞 0 分享

Windows Powershell 介绍和安装

Powershell 是运行在windows机器上实现系统和应用程序管理自动化的命令行脚本环境。微软之所以将Powershell 定位为Power,并不是夸大其词,因为它完全支持对象。其可读性,易用性,可以位居当前所有shell之首。
收藏 0 赞 0 分享

Windows Powershell 自定义控制台

这篇文章主要介绍了Windows Powershell 自定义控制台,包括选项、字体、布局和颜色四个方面的自定义风格,希望对大家有所帮助
收藏 0 赞 0 分享

windows Powershell 快速编辑模式和标准模式

powershell控制台有两种模式,一个是快速编辑模式,一个是标准模式。
收藏 0 赞 0 分享

PowerShell中查找字符串位置的IndexOf函数使用实例

这篇文章主要介绍了PowerShell中查找字符串位置的IndexOf函数使用实例,例子简单明了,容易看懂,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell使用正则表达式查找字符串实例

这篇文章主要介绍了PowerShell使用正则表达式查找字符串实例,主要是对match运算符的使用介绍,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell中使用正则表达式跨行匹配字符串的方法

这篇文章主要介绍了PowerShell中使用正则表达式跨行匹配字符串的方法,重点在于正则表达式的写法,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell中查看当前版本、Windows版本、.NET版本信息的代码

这篇文章主要介绍了PowerShell中查看当前版本、Windows版本、.NET版本信息的代码,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell 入门基础教程

Windows PowerShell 是专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用
收藏 0 赞 0 分享

PowerShell Contains函数查找字符串实例

这篇文章主要介绍了PowerShell Contains函数查找字符串实例,Contains函数的作用是查询一个字符串中是否存在另一个字符串,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多