PowerShell实现在多个文件中检索关键字功能
这几天在看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),即当用户输入一个关键字后,命令会从后向前的执行。
由于是刚入门,如有出错,大神们多多指教。
- 将excel文件中的商品数据导入到数据库,并实现相关检索以及模糊搜索功能
- PowerShell在多个文件中检索关键字
- Xcode .m实现文件 关键字没有提示,不提示代码补全功能,问题解决。
- 实现应用程序的文件拖放功能
- Visual C++实现文件间批量转换功能
- .Net/C# 封装磁盘目录文件搜索功能的工具类 (实现了与搜索相关的事件,以便插入客户处理代码)
- VC下利用多线程实现文件的快速检索
- 文件上传的实现 (马马 2001年09月28日 17:14) PHP同样支持上传文件的功能,但并不是所有支持PHP的网站都支持此功能,特别是免费的网站。 实现上传,首先要在HTML上加入上传文件的“<FORM>”表格。 <form me
- 用Visual C++实现文件间批量转换的功能
- Java实现读取Doxygen查询功能的索引文件。
- 闲来无事之--记用BAT(批处理脚本)实现文件下载功能
- 用xmlhttp将html的数据打包成multipart/form-data格式,实现异步上传文件功能[转]
- 在Delphi中用拼音首字符序列来实现检索功能
- Flex2.0实现文件上传功能(服务器为ASP.NET)
- 用Servlvet实现文件上传的功能
- 1.1.22. typeid()关键字 (RTTI支持) typeid 的参数必须含有虚函数才能实现以下功能
- 闲来无事之--记用BAT(批处理脚本)实现文件下载功能(续)
- 用Visual C#实现文件下载功能
- 使用文件流下载文件功能实现 [原]
- (MS SQL)如何实现相关文章功能(多关键字匹配)改进版