如何在适当的位置剪切大文件?

Rom*_*man 7 text-processing files

我有一个非常大的文本文件,大约 80GB,我需要从它的两个给定行之间剪切一个部分。我需要的部分并不大,而且我的硬盘驱动器上没有足够的空间来执行以下操作:

head -n 10000000 filename > auxiliary_part
tail -n 1000 auxiliary_part > needed_part
Run Code Online (Sandbox Code Playgroud)

我怎么做?

Mar*_*try 20

sed -n '3,10p' big-file.txt > your-section.txt
Run Code Online (Sandbox Code Playgroud)

用您的行范围替换 3 和 10。sed 命令基本上表示打印 ( p) 第 3 行和第 10 行之间的所有内容。它-n告诉它安静地执行,否则它会在读取文件时打印出输入。

  • 由于 OP 指定了一个大文件,如果所需的行不在文件末尾附近,那么包含一个 `q` 命令也可能很有用,这样 *sed* 可以跳过文件的其余部分。像 `3,$p;10q` 这样的东西会起作用,让你不必重复结束行号。 (8认同)

gee*_*aur 8

管道一个到另一个:

head -n 10000000 filename | tail -n 1000 > needed_part
Run Code Online (Sandbox Code Playgroud)