我有一个大的xml文件,整个文件只有一行。这是非常不切实际的,因为我需要在文件中搜索某些事件,grep
命令在这种情况下无法帮助。我尝试在几个编辑器中打开文件,如notpad ++和sublime,但文件太大了。有没有什么聪明的方法可以在linux或windows中搜索字符串或模式的出现? grep
的问题当然是它返回匹配发生的行,在这种情况下这是不好的。
文件大小为4GB。
答案 0 :(得分:1)
如果您可以编辑文件,或至少编辑文件的副本,我建议您将其拆分为单独的行,然后使用grep或Notepad ++等进行搜索。
尝试将><
更改为>\n<
- 这会将每个XML元素放在自己的行上。
如果您需要有关替换的帮助,可以使用SO question on doing string substitution in bash
答案 1 :(得分:0)
如果您尝试使用grep
,可以使用--color=always
突出显示找到匹配项的部分
grep --color=always Issues.txt
或者,尝试使用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
进行搜索