将x行从大文件复制到mac上的新文件

时间:2012-11-28 11:24:28

标签: macos file

我正在寻找一种快速有效的方法从文本文件中提取x行并将其保存到新文件中。例如。我有一个4GB的文本文件(XML),我只需要了解解析它们的结构。没有我尝试过的工具(SublimeText2,TextWrangler,MacVim)能够打开文件,所以我的想法是将x行复制到一个新文件并打开它。

希望有人可以帮助我。谢谢,祝你有愉快的一天!

2 个答案:

答案 0 :(得分:6)

在终端中,head -100 yourFile将为您提供前100行。最后还是tail -100 yourFile

head -1000 yourFile > littleFile

将前1000行放入littleFile,我怀疑可以在你可以创建的任何大小的文件上工作。

答案 1 :(得分:1)

这是我调查大型日志文件时通常要做的。仅将感兴趣的行放入一个单独的文件中会很方便,这在日志文件处于活动状态且正在增长时特别有效。

第1步:使用grep输入模式,并获取感兴趣的行号。在日志文件夹中...'pattern'的grep。的。搜索当前目录,您可以进行相应更改或使用其他grep选项。

grep -rnw . -e 'pattern'

./ logfile.log:293910 //模式的首次出现

...

./ logfile.log:294591 //模式的最后一次出现

因此,要创建以进行调查的新文件需要在第一次出现该模式之前有几行,而在最后一次出现该模式之后需要几行。您可以像这样创建一个单独的文件...

head -294800 ./logfile.log | tail -900 > test.log

现在,原始日志文件有900行静态内容,使用起来更加轻松。希望这对某人有帮助。

OR

在vi / vim编辑器中...您可以这样做,其中范围100、200

:100,200w test.log

OR

vim -c "100,200w test.log" -c wq logfile.log