我正在尝试删除我非常大的分隔文本文件中的第 10,754,960 行。理想情况下,我想看看这一行上有什么文本 - SQL 服务器导入告诉我有一个错误(我相信需要进行一些数据清理)。
最坏的情况,我只想摆脱它。
任何想法使用编程或一些软件包?文本文件太大,无法在我的笔记本电脑上自行打开。
我正在尝试删除我非常大的分隔文本文件中的第 10,754,960 行。理想情况下,我想看看这一行上有什么文本 - SQL 服务器导入告诉我有一个错误(我相信需要进行一些数据清理)。
最坏的情况,我只想摆脱它。
任何想法使用编程或一些软件包?文本文件太大,无法在我的笔记本电脑上自行打开。
sed 是完成这项工作的工具。
如果你在 Linux 机器上,下面的 sed 命令可以解决问题: sed -i 10754960d /your/text/file.txt
如果您使用的是 Windows 机器,您可以通过以下链接从 Sourceforge 获得适用于 Windows 的 sed 版本,然后使用上面的命令:http: //gnuwin32.sourceforge.net/packages/sed.htm
这是一段 C# 代码,可让您从代码中执行此操作。这基本上是通过读取现有文件来创建新文件,但会跳过有错误的行。
private const string OLD_FILE = @"C:\file1.csv";
private const string NEW_FILE = @"C:\file2.csv";
private void RemoveLine()
{
StreamReader reader = new StreamReader(OLD_FILE);
StreamWriter writer = File.CreateText(NEW_FILE);
int counter = 1;
while (!reader.EndOfStream)
{
if (counter != 10754960)
{
writer.WriteLine(reader.ReadLine());
}
counter++;
}
writer.Close();
reader.Close();
}