Windows 命令行 FIND 命令非常慢

Windows 命令行 FIND 命令非常慢

我在命令行上使用 FIND 将一个非常大的 csv 文件缩小为一个较小的文件,其中仅包含包含特定字符串的行。

原始文件有 339MB,包含数百万行。输出文件有 20MB,包含约 550K 行。运行时间非常长 - 超过 1 小时。

我怎样才能使我的查找命令更高效并且更快地完成?

OS Name:                   Microsoft Windows 10 Enterprise
OS Version:                10.0.18363 N/A Build 18363
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Member Workstation
OS Build Type:             Multiprocessor Free

Product ID:                00329-00000-00003-AA571
Original Install Date:     7/21/2020, 8:23:02 AM
System Boot Time:          11/20/2020, 7:13:17 PM
System Manufacturer:       VMware, Inc.
System Model:              VMware Virtual Platform
System Type:               x64-based PC
Processor(s):              2 Processor(s) Installed.
                           [01]: Intel64 Family 6 Model 63 Stepping 0 GenuineIntel ~2594 Mhz
                           [02]: Intel64 Family 6 Model 63 Stepping 0 GenuineIntel ~2594 Mhz
BIOS Version:              Phoenix Technologies LTD 6.00, 12/12/2018
Windows Directory:         C:\WINDOWS
System Directory:          C:\WINDOWS\system32
Boot Device:               \Device\HarddiskVolume1
System Locale:             en-us;English (United States)
Input Locale:              en-us;English (United States)
Time Zone:                 (UTC-05:00) Eastern Time (US & Canada)
Total Physical Memory:     16,384 MB
Available Physical Memory: 7,412 MB
Virtual Memory: Max Size:  18,816 MB
Virtual Memory: Available: 10,085 MB
Virtual Memory: In Use:    8,731 MB

答案1

寻找是一个古老的实用程序,可以追溯到 Windows 早期,因此它的速度不是很快也就不足为奇了。

你无法改变寻找有效,所以唯一的解决方案是使用其他第三方搜索产品。

您可能会寻找来自 Linux Grep 家族的产品,例如 查找 或任何免费 备择方案. 尝试它们直到找到一个满足您需求的,也许有一个 GUI 界面并且不仅仅在命令提示符中工作。

答案2

您可以尝试使用 PowerShell。我不知道它是否更快,但值得一试。

Select-String -Path "Filename.txt" -Pattern "WhatToLookFor" | Select-Object -ExpandProperty Line | Out-File "results.txt"

Select-String搜索文本

Select-Object从 Select-String 中选择Line结果的属性

Out-File将输出写入文件

答案3

谢谢你的建议。

我应该早点看到这一点。我正在对存储在网络驱动器上的数据运行命令。当我将输入文件移动到本地磁盘并确保输出也移动到本地文件时,性能提高到可接受的水平。实际上现在相当快,大约 1 分钟即可完成。

现在感觉不太聪明。

再次谢谢你

相关内容