Windows - 从非常大的文本文件中删除特定行

时间:2012-03-22 09:58:43

标签: windows text-files textedit

我有一个非常大的文本文件(600mb),我想删除该文件中的特定行。

我知道要删除的行号。有没有一种非常简单的方法来实现这一目标?

4 个答案:

答案 0 :(得分:0)

没有简单的方法可以做到这一点。您必须阅读整个文件,进行所需的修改,然后重新编写该文件。您无法以任何其他方式从文件中间删除。

作为次要优化,您只需在第一次修改后重写文件的一部分。但是你必须在那之后重写整体。如果删除的行位于文件的末尾,那么这可能是一个重要的优化。

因此,如果要进行此类修改,大文本文件不是最佳存储格式。数据库可以带来更好的性能。

答案 1 :(得分:0)

这可以在C#中轻松完成。 但我不知道这是不是你想要的。

答案 2 :(得分:0)

感谢您的回复 - 我在Windows的Vim编辑器中找到了一种简单的方法。

只是通过信息,有问题的文件是一个提供的.sql文件,用于重新创建一个mysql数据库,所以没有选择,只能真正操作它。

再次感谢你们。

答案 3 :(得分:0)

在PowerShell中:

$linesToRemove = 15,534,814,4632
$encoding = 'ASCII' # or 'UTF8', depending on what you need
Get-Content foo.sql |
  ForEach-Object { $i=0 } { $i++ } |
  Where-Object { $linesToRemove -notcontains $i }