从一个巨大的文本文件中提取许多前导行

时间:2011-10-13 21:57:01

标签: bash text emacs terminal

我有一个巨大的文本文件。我想提取它的前532541行并将它们存储在另一个文件中。用鼠标选择文本并执行ctrl + c显然不是一个可行的解决方案。

我该怎么做?

4 个答案:

答案 0 :(得分:18)

head -n 532541 big-file > first-bit

答案 1 :(得分:4)

在Emacs中 M-< C-SPC Cu 532541 Cn 的Mx 写区域。如果经常这样做,那么写一个键盘宏来执行这些步骤。

或者,您可以定义一个插入当前缓冲区文件名的函数,如so。然后, M - ! head -n 531541 F3 >第一位

答案 2 :(得分:2)

head是这项工作的正确工具。使用awk或sed,在目标行之后退出处理文件会更有效,因此不必读取文件的无用其余部分。

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

答案 3 :(得分: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

:)玩得开心