gpt4 book ai didi

powershell - 在大文件中查找和替换

转载 作者:行者123 更新时间:2023-12-04 13:29:42 28 4
gpt4 key购买 nike

我想在一个大的 xml 文件中找到一段文本,并想用其他一些文本替换。文件大小约为(50GB)。我想在命令行中执行此操作。我正在查看 Powershell,想知道它是否可以处理大尺寸。另外我想知道在powershell中转义关键运算符的语法。我是 PowerShell 新手

目前我正在尝试这样的事情,但它不喜欢它

    Get-Content C:\File1.xml | Foreach-Object {$_ -replace "xmlns:xsi=\"http:\/\/www\.w3\.org\/2001\/XMLSchema-instance\"", ""} | Set-Content C:\File1.xml

我要替换的文字是 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"带有空字符串“”。

问题
  • PowerShell 可以处理大
    文件
  • 我如何调用
    来自命令行的 powershell 脚本
  • 转义键的语法
    PowerShell 中的运算符和列表
    PowerShell 中的关键运算符。
  • 我不希望替换发生在
    内存和更喜欢流假设
    这不会使服务器
    它的膝盖。
  • 我可以采取任何其他方法吗(不同的
    工具/策略?)

  • 谢谢

    最佳答案

    我有类似的需求(并且类似缺乏 powershell 经验),但从本页上的其他答案中拼凑出一个完整的答案,再加上更多的研究。

    我也想避免正则表达式处理,因为我也不需要它——只是一个简单的字符串替换——但是在一个大文件上,所以我不想把它加载到内存中。

    这是我使用的命令(添加换行符以提高可读性):

    Get-Content sourcefile.txt
    | Foreach-Object {$_.Replace('http://example.com', 'http://another.example.com')}
    | Set-Content result.txt

    完美地工作!从来没有占用太多内存(很明显它没有将整个文件加载到内存中),只是慢吞吞地坚持了几分钟然后就完成了。

    关于powershell - 在大文件中查找和替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2783837/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com