2

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

希望有人可以帮助我。感谢,并有一个愉快的一天!

4

2 回答 2

8

在终端中,head -100 yourFile会给你前 100 行。或者tail -100 yourFile在最后。

head -1000 yourFile > littleFile

将前 1000 行放入 littleFile 中,我怀疑适用于您可以创建的任何大小的文件。

于 2012-11-28T12:35:29.973 回答
2

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

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

grep -rnw . -e 'pattern'

./logfile.log:293910 // 第一次出现模式

...

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

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

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

现在你有了一个静态的 900 行原始日志文件,它更容易使用。希望这可以帮助某人。

或者

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

:100,200w test.log

或者

vim -c "100,200w test.log" -c wq logfile.log
于 2018-09-06T15:44:10.860 回答