regex - 提高 PowerShell 过滤语句的性能

标签 regex performance powershell filtering select-string

我有一个通过 HTTP 访问日志的脚本,根据正则表达式过滤掉一些行并将它们复制到另一个文件中:

param($workingdate=(get-date).ToString("yyMMdd"))
Get-Content "access-$workingdate.log" | 
Select-string -pattern $pattern | 
Add-Content "D:\webStatistics\log\filtered-$workingdate.log"

我的日志可能非常大(最多 2GB),运行最多需要 15 分钟。有什么我可以做的来提高上述陈述的表现吗?

谢谢你的想法!

最佳答案

看看这是否比您当前的解决方案更快:

param($workingdate=(get-date).ToString("yyMMdd"))
Get-Content "access-$workingdate.log" -ReadCount 2000 |
 foreach { $_ -match $pattern | 
  Add-Content "D:\webStatistics\log\filtered-$workingdate.log"
 }

关于regex - 提高 PowerShell 过滤语句的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32000445/

相关文章:

powershell - 为什么此 PowerShell &符号命令中的参数被错误解释?

powershell - 检查帐户是否是本地组的成员并在 powershell 2.0 中执行 IF/ELSE

python - 在Python的正则表达式中提取两个标记之间的文本并处理反斜杠

javascript - 由 5 位数字组成的正则表达式集,后跟一个逗号(尾随逗号可选)

ruby-on-rails - Rails on ruby​​/jruby 性能

powershell - 重命名Powershell中的文件

python - 使用单词列表作为引用的正则表达式提取,Python

php - 从字符串中删除非 utf8 字符

java - VisualVM 和自拍时间

c++ - 从自定义集合中读取数据(结构数组)