我正在尝试在我的超大分隔文本文件中删除第10,754,960行。理想情况下,我想查看此行中的文本是什么 - SQL服务器导入告诉我存在错误(我认为需要进行一些数据清理)。
最糟糕的情况是,我只是想摆脱它。
是否有使用编程或某些软件包的想法?文本文件太大,无法在笔记本电脑上打开。
答案 0 :(得分:1)
sed是这项工作的工具。
如果您在Linux机器上,以下sed命令将执行此操作: sed -i 10754960d /your/text/file.txt
如果您在Windows机器上,可以从以下链接获取Sourceforge的Windows版本的sed,然后使用上面的命令: http://gnuwin32.sourceforge.net/packages/sed.htm
答案 1 :(得分:0)
为什么不将文件送入SSIS导入包? 然后,您可以围绕导入包装DataViewer输出,以便您可以检索有关失败数据的所需信息?
或者您可以尝试error descriptions
答案 2 :(得分:0)
这是一段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();
}