我有一个很大的服务器日志文件(〜750 MB),无法用记事本或Notepad ++打开(它们都说文件太大)。
谁能建议一个程序(对于Windows)一次只能将文件的一小部分读到内存中的程序?
还是我需要编写自己的应用来解析此文件?
我有一个很大的服务器日志文件(〜750 MB),无法用记事本或Notepad ++打开(它们都说文件太大)。
谁能建议一个程序(对于Windows)一次只能将文件的一小部分读到内存中的程序?
还是我需要编写自己的应用来解析此文件?
Answers:
如果您需要的只是阅读工具,那么此操作将立即打开文件http://www.readfileonline.com/
集成的文本-浏览器的总指挥官可以观看没有任何问题打开大文件(> 10GB)。它还提供了不同的视图,例如十六进制视图。
我已经使用BareTail了一段时间,以查看大型日志(某些GB),并且运行非常快。有免费版和专业版Pro。
他们说它有
另一个选择是Far Manager。查看几个GB的文件没问题(内存占用很少),但是尝试在“编辑”模式下打开文本文件可能会占用几个GB的RAM,因此请注意。我不知道可以在Far中查看/编辑的文件大小限制。
我只是less
在Cygwin上用来读取3GB的文件,尽管最终还是用它grep
来查找所需的文件。
(less
是more
,但更好。)
有关更多详细信息,请参见此答案less
:https : //stackoverflow.com/a/1343576/1005039
如果可以编码,请编写一个控制台应用程序。这是您所追求的C#等价物。您可以对结果进行操作(拆分,执行等):
SqlCommand command = null;
try
{
using (var connection = new SqlConnection("XXXX"))
{
command = new SqlCommand();
command.Connection = connection;
if (command.Connection.State == ConnectionState.Closed) command.Connection.Open();
// Create an instance of StreamReader to read from a file.
// The using statement also closes the StreamReader.
using (StreamReader sr = new StreamReader("C:\\test.txt"))
{
String line;
// Read and display lines from the file until the end of
// the file is reached.
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
command.CommandText = line;
command.ExecuteNonQuery();
Console.Write(" - DONE");
}
}
}
}
catch (Exception e)
{
// Let the user know what went wrong.
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
finally
{
if (command.Connection.State == ConnectionState.Open) command.Connection.Close();
}
大文本文件查看器非常适合仅查看大文件(并且是免费的!),但是如果文件是定界文件或定宽文件,则应签出File Query。它不仅可以打开任何大小的文件(我个人已经打开了280GB的文件,但是可以更大),它还可以让您像在数据库中一样查询该文件,从而找到您需要的各种信息。可能想要它。
但是它不是免费的,因此对于处理大量大文件的人来说更多,但是如果您遇到一次性问题,则可以免费使用30天试用版。
您应该尝试使用TextPad,它可以读取该大小的文件。
免费评估(您可以无限期评估)