如何从庞大的数据文件中提取特定行?

How to extract specific lines from a huge data file?

我有一个非常大的数据文件,大约有 32GB。该文件由大约130k行组成,每行主要包含数字,但也有少量字符。

我需要执行的任务很明确:我必须提取 20 行并将它们写入一个新的文本文件。

我知道我要复制的 20 行中每一行的确切行号。

所以问题是:如何从大文件中提取特定行号的内容?我在 Windows。有没有工具可以做这样的操作,或者我需要写一些代码?

如果没有直接的方法,我在想一个可能的方法是先提取原始文件的小块(这样每个块都包含要提取的一行或多行),然后使用标准编辑器查找每个块中的行。在这种情况下,问题是:如何在 windows 上按行将大文件拆分为块?我使用了一个名为 HJ-Split 的工具,它对大文件非常有效,但它只能按大小拆分,不能按行拆分。

安装[1] Babun Shell (or Cygwin, but I recommend the Babun), and then use sed command as described here: How can I extract a predetermined range of lines from a text file on Unix?

[1]安装Babun其实就是把它解压到某个地方,所以你不需要在服务器上有管理员权限。