powershell - 使用 powershell 处理海量数据文件
问题描述
我正在尝试对 4GB 的数据文件执行替换操作。但由于内存异常,我什至无法读取此文件。以下命令给出内存错误。
$edwfile = (Get-Content C:\Users\tomgeorg\Desktop\edw_ord_extr_3x_SIQP_20181021.182305\edw_ord_extr_3x_SIQP_20181021.182305.dat -Raw )
是否有任何替代命令或技巧来处理大文件。
我想在文件的每一行上运行以下替换模式。基本上我想删除所有不需要的特殊字符。
-replace "[$([char]0x00)-$([char]0x09)$([char]0x0B)-$([char]0x1F)$([char]0x7F)-$([char]0xFF)]","?"
系统详情
解决方案
下面是带有流的示例解决方案。它逐行读取文件,然后将更新的行添加到新文件中。
$reader = [System.IO.StreamReader]"C:\temp\OriginalFile.txt"
$writer = [System.IO.StreamWriter]"C:\temp\UpdatedFile.txt"
while (!$reader.EndOfStream) {
$writer.WriteLine(($reader.ReadLine() -replace '\|', ";"))
}
$reader.Close()
$writer.Close()
推荐阅读
- web-services - SOAP 服务的“代表”
- docker - 在 Chaincode Dev 模式下为 Fabric 添加新链码的位置
- css - 在我的叠加层上叠加文本
- android - 从我们自己的服务器而不是 Play 商店分发的 Android 应用程序的推荐/邀请跟踪
- ruby-on-rails - 设计 - 没有 active_for_authentication 的 bypass_sign_in?打回来
- c# - Windows XP 上捆绑的 .NET 应用程序
- arduino - 随时间绘制 PWM 的简单方法
- java - 在 Glassfish 上执行应用程序时出错
- xquery - 如何在marklogic中对字符串日期进行排序?
- node.js - 我需要不断更新对文本文件所做的更改并在浏览器中显示而不刷新