在大文件中搜索一个大行,并且太大而无法由编辑打开

时间:2016-04-20 07:28:37

标签: xml search grep

我有一个大的xml文件,整个文件只有一行。这是非常不切实际的,因为我需要在文件中搜索某些事件,grep命令在这种情况下无法帮助。我尝试在几个编辑器中打开文件,如notpad ++和sublime,但文件太大了。有没有什么聪明的方法可以在linux或windows中搜索字符串或模式的出现? grep的问题当然是它返回匹配发生的行,在这种情况下这是不好的。

文件大小为4GB。

4 个答案:

答案 0 :(得分:1)

如果您可以编辑文件,或至少编辑文件的副本,我建议您将其拆分为单独的行,然后使用grep或Notepad ++等进行搜索。

尝试将><更改为>\n< - 这会将每个XML元素放在自己的行上。

如果您需要有关替换的帮助,可以使用SO question on doing string substitution in bash

答案 1 :(得分:0)

如果您尝试使用grep,可以使用--color=always突出显示找到匹配项的部分

grep --color=always Issues.txt

enter image description here

或者,尝试使用vim编辑器来处理此类文件。

另外,如果你真的想格式化xml,即将它分成多行并使用缩进,你可以使用xmllint

xmllint --format theXMLFile将输出到stdout,您可以将其重定向到另一个文件。

如果你搜索一下,你也可以在你最喜欢的编辑器中找出如何使用它(在凯特,我使用命令选项)

答案 2 :(得分:0)

大多数XML编辑都可以应对这种情况。值得投资于像oXygen或Stylus Studio这样的IDE,但是也许有免费的XML编辑器也可以做得很好。 XML编辑器通常允许您打开单行XML文件并在多行上缩进显示它,并考虑到它对XML语法的了解。

不幸的是,你不能说出你的意思&#34;大&#34;。它可能是1Mb,1Gb或1Tb - 这些数字之间存在很大差异!所有编辑都要努力超过50Mb左右。

答案 3 :(得分:0)

当我需要打开一个大文件时,我会少用。这真的很快:

 less -n filename 

-n禁用行号(它们需要一段时间才能计算,你不需要它们)

您可以使用/ pattern

进行搜索