从大型文本文件中提取许多前导行

3

我有一个很大的文本文件。我想提取其中的前532541行并将它们存储到另一个文件中。用鼠标选择文本并按ctrl+c显然在这里不可行。

我该如何做呢?

4个回答

18
head -n 532541 big-file > first-bit

4
在Emacs中,使用 M-<C-SPCC-u532541C-nM-xwrite-region 命令可以将文本保存到文件中。如果您经常需要这样做,可以编写一个键盘宏来完成这些步骤。另外,您还可以定义一个函数来插入当前缓冲区的文件名,例如这样。然后,使用命令 M-!head -n 531541 F3> first-bit 可以将前531541行文本保存至文件first-bit中。

2

head 是这项工作的合适工具。使用 awk 或 sed,在目标行后停止处理文件更加高效,这样无用的文件内容就不必被读取。

sed '532541q' big > small
awk '{print} NR==532541 {exit}' big > small

1
awk 'NR<=532541' big > small
awk '{if(NR<=532541) print; else exit}' big > small  #if the file is really huge
sed -n '1,532541p' big > small
sed '1,532541!d' big > small
sed '532542,$d' big > small

:)玩得开心


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接