使用 powershell 的 grep 过滤文本

摘要:
Catsomefile。txt |其中{$-match“some_regexp”}实现了纯种Powershell。最后编写的powershell命令如下:cat。日志日志|其中{$_-match“d{3,}s”}>“3位数、2位数或更多”表示“s”。07:

 

使用 powershell 的 grep 过滤文本

有个log文件,大小在4M左右,要求找出里面耗时超过100s 的记录。首先想到了强大的 grep ,那么就搞起。
先在网上找一下资料,这篇文章,有几种方式:

第一种:
Get-content somefile.txt|findstr "someregexp"
Get-content可以换成cat,Powershell已经给他们做了个别名,可真是体谅sheller。
这种方法算是commandline和Powershell混合,因为findstr是命令行工具,并不是Powershell的cmdlet。
第二种:
cat somefile.txt | where { $
-match "some_regexp"}
纯种Powershell实现了,利用了where过滤
第三种:
Select-String "some_regexp" somefile.txt
直接用Select-string的实现。

经过测试,最后写出的 powershell 命令如下:

cat .log.log|where {$_ -match "d{3,}.d{2,}s"} >>result.log

用了 where 这个, 这个能使用正则, findstr 命令不行。里面的正则匹配字符串 "d{3,}.d{2,}s" 也很简单了,"3个数字.2个数字以上s "的意思。

最后: 过滤出来的结果放入 result.log

17:05:14,884 ltcappserver.node1@ltcappserver http-0.0.0.0-8888-Processor7 DEBUG StrategyActionHelper: - getStrategyInvoiceMap finished ... Consumed time:191.028s
17:05:14,889 ltcappserver.node1@ltcappserver http-0.0.0.0-8888-Processor4 DEBUG StrategyActionHelper: - getStrategyInvoiceMap finished ... Consumed time:191.04s
17:07:19,112 ltcappserver.node1@ltcappserver http-0.0.0.0-8888-Processor7 DEBUG StrategyActionHelper: - setListStrategyAttributes finished ... Consumed time:379.082s
17:07:20,106 ltcappserver.node1@ltcappserver http-0.0.0.0-8888-Processor4 DEBUG StrategyActionHelper: - setListStrategyAttributes finished ... Consumed time:381.021s
17:07:37,449 ltcappserver.node1@ltcappserver http-0.0.0.0-8888-Processor4 DEBUG StrategySearchAction: - setListStrategyAttributes finished ... Consumed time:398.364s
17:25:26,773 ltcappserver.node1@ltcappserver http-0.0.0.0-8888-Processor4 DEBUG cl: - build table data in getClientContractElement finished ... Consumed time:1064.296s
17:25:27,328 ltcappserver.node1@ltcappserver http-0.0.0.0-8888-Processor4 DEBUG cl: - getClientContractElement finished ... Consumed time:1064.858s
17:25:27,328 ltcappserver.node1@ltcappserver http-0.0.0.0-8888-Processor4 DEBUG cl: - buildGTReport finished ... Consumed time:1064.87s Free memory: 176198

注意:
powershell里的编码是 GB K的,不是 UTF8,如果要过滤中文字符,简单的方法是先将 UTF8 编码的文件转换为 ANSI 编码。

免责声明:文章转载自《使用 powershell 的 grep 过滤文本》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇如何将jsp页面的table报表转换到excel报表导出关于 移动端实现 点击按钮复制指定内容到剪切板 的坑下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SSO单点登录和CAS

一、单点登录流程 =====客户端====== 1.拦截客户端的请求判断是否有局部的session 2.1如果有局部的session,放行请求. 2.2如果没有局部session 2.2.1请求中有携带token参数 2.2.1.1如果有,使用HttpURLConnection发送请求校验token是否有效. 2.2.1.1.1如果token有效,建立局部...

WIN10 使用POWERSHELL 设置单应用KIOSK模式(win10家庭版或企业版)

win10 使用PowerShell 设置单应用kiosk模式 win10 家版或企业版PowerShellshell 启动器 v1Autologon.exe 注意事项 win10 家庭版或企业版。 下载安装Autologon.exe。 Shell 启动器 v1调用的应用程序不可有黑窗(类似cmd)。 以下示例采用账号:- 账户:'KIOSK'- 密码:'...

JAVA_SE基础——39.继承

在面向对象程序设计中,可以从已有的类派生出新类。 这称做继承(inheritance)。 白话解释: 例子1:继承一般是指晚辈从父辈那里继承财产,也可以说是子女拥有父母给予他们的东西。    例子2:猫和狗都属于动物,程序中便可以描述为猫和狗继承自动物。同理,咖啡猫和波斯猫继承自猫,而泰迪犬和比特犬继承自狗。所有的动物之间都会形成一个继承体系,具体下...

类型信息

一、Class对象 在Object类中定义了以下的方法,此方法将被所有子类继承: public final Class getClass() @Test public void test3() { Person person = new Person(); Class clazz = person.getC...

移动开发js库Zepto.js应用详解

从哪里下载 Zepto 地址:http://zeptojs.com/ 中文版地址:http://www.css88.com/doc/zeptojs_api/ 这个问题看起来很蠢,从官网下载不就行了嘛!可是你有没有发现下载链接上面有行小字呢? 在这个 README 里面你会惊奇地发现,Zepto 源码中有 14 个模块,而官网提供的标准版里面只有 7...

window.open() | close()方法

Window对象的open()方法可以打开一个新的浏览器窗口(或标签页),window.open()载入指定的URL到新的或已存在的窗口中,返回代表那个窗口的window对象,它有4个可选的参数    1.open()第一个参数是要在新窗口中显示的文档的URL,可为空(为空就是about: blank)    2.open()第二个参数是新打开的窗口的名字...