powershell任何搜索大文本文件的速度更快

时间:2014-10-29 09:14:58

标签: powershell

$File="C:\temp\test\ID.txt"
$line="ART.023.AGA_203.PL"

Measure-Command {$Sel = Select-String  -pattern $line -path $File } 

Measure-Command {
    $reader = New-Object System.IO.StreamReader($File)
    $content = $reader.ReadToEnd().Split('`n')
    $results = $content | select-string -Pattern $line
    }

Measure-Command {
        $content= get-content $File
        $results = $content | select-string -Pattern $line
        $results
        }


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 197
Ticks             : 1970580
TotalDays         : 2.28076388888889E-06
TotalHours        : 5.47383333333333E-05
TotalMinutes      : 0.0032843
TotalSeconds      : 0.197058

TotalMilliseconds : 197.058

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 4
Milliseconds      : 135
Ticks             : 41350664
TotalDays         : 4.78595648148148E-05
TotalHours        : 0.00114862955555556
TotalMinutes      : 0.0689177733333333
TotalSeconds      : 4.1350664

TotalMilliseconds : 4135.0664

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 4
Milliseconds      : 926
Ticks             : 49265692
TotalDays         : 5.70204768518518E-05
TotalHours        : 0.00136849144444444
TotalMinutes      : 0.0821094866666667
TotalSeconds      : 4.9265692
TotalMilliseconds : 4926.5692

我想在$ File

中搜索大约10000美元的行

搜索时间非常慢,速度更快?

示例:

搜索关键字:$ line,然后$ File将显示行

关键字:ART.023.AGA_203.PL

的文件:2,45433; ART.023.AGA_203.PL; DDDD; WWWW; TT;

1 个答案:

答案 0 :(得分:0)

这与其他方法相比如何?

Measure-Command {
 Get-Content $file -ReadCount 1000 |
 foreach {$_ -match $line}
}

注意:当执行磁盘读取的比较测试操作时,请始终运行多个测试并丢弃第一个测试。如果磁盘具有任何板载读取缓存,则第一个测试可以预加载缓存以用于后续测试并使结果偏斜。