gpt4 book ai didi

powershell - -append是否与从文件中删除项目相反?

转载 作者:行者123 更新时间:2023-12-03 01:25:26 24 4
gpt4 key购买 nike

我正在从文件中读取用户列表,更改其密码,然后写出2个文件,其中一个成功,而一个失败。
我想使这个过程自动化。我曾考虑过在脚本完成后进行比较,但是当更改成功后,只需从列表中删除用户会更干净。是否有某些功能与输出文件功能的-Append相反?我想编辑文件,而不是每次都重写整个文件。

最佳答案

正如评论中提到的,从文件中“删除行”并不像大多数图形文本编辑器看起来那样简单!
磁盘上文本文件的逻辑内容只是字节值的连续字符串。文本处理器可以通过跟踪最低偏移量修改(即,最靠近编辑器左上角的修改),然后仅将文本的其余部分从磁盘中相应偏移量写入磁盘,来优化磁盘I / O。文件-但是您不能只是在文件中间作为文件系统操作“删除一行”-这只会在文件数据中留下巨大的空白。
假设有问题的用户的最大数量是数百或数千,则不必担心磁盘性能,只需删除PowerShell中内存中的相关行并用剩余的列表覆盖原始文件即可:

$allUsers = Get-Content .\full_list.txt
$alreadyProcessed = Get-Content .\success.txt

$remainingUsers = $allUsers | Where-Object { $alreadyProcessed -notcontains $_ }

$remainingUsers |Set-Content .\full_list.txt

关于powershell - -append是否与从文件中删除项目相反?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63637050/

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