2011-10-20 50 views
0

所以我有一个非常简单的问题,但我有点弱智,所以需要一些帮助!从文本文件中提取行到一个CSV

我需要一个命令行批处理文件执行以下操作:

我有5000个文本文件,所有具有相同的结构(即,每行相同的字段),但是不同的数据。我想批量提取第3行和第5行的所有文件的数据,并将其放入一个简单的CSV文件中,该文件也标记文件名。

例如,文本文件(通过对标有5000.txt 1.txt的)是这样的:

[data on line 1] 
[data on line 2] 
[data on line 3] 
[data on line 4] 
[data on line 5] 
[data on line 6] 

而且在CSV所需的输出,我以后是这样的:

[Filename 1.txt],[Data from line 3],[Data from line 5] 
[Filename 2.txt],[Data from line 3],[Data from line 5] 

等等...

[Filename 5000.txt],[Data from line 3],[Data from line 5] 

任何想法?

+2

从“FOR”命令开始。在命令提示符下键入'FOR /?'。你有一些代码后,告诉我们,我们可以提供帮助。 – aphoria

+0

可能重复[批处理多行到单行?](http://stackoverflow.com/questions/7837757/batch-processing-multiple-lines-to-a-single-line) –

+0

不,重复[从多个文本文件中提取特定数据行,转换为单个csv文件](http://stackoverflow.com/questions/7851018/extracting-specific-lines-of-data-from-multiple-text-files-to -convert到一星) – Aacini

回答

1

有一个名为LogParser的免费Microsoft工具,它允许您使用SQL从匹配查询的文本行中的指定列中返回数据,但是您希望返回指定的行而不是列。

曾经有一个在MS-DOS中叫做EDLIN的行编辑器。它仍然可以在Windows 7的命令窗口中使用。可以在批处理文件中使用它来提取所需的行。

祝你好运!

1

或者可能使用VBA中MS Excel中的文件系统对象?

如果编程不是你的东西,你可以看看键盘宏录像机。通常,您点击“记录”并手动执行一个文件,Alt + Tab;向下箭头到下一个文件并点击“停止”。然后将该宏分配给一个组合键。重复击中关键组合。将一次执行一个文件。对于5,000个文件,您可能会发现5000个击键比在陌生环境中学习一种奇怪的编程语言更容易。

我不假设你在文本文件中有行号?即第1行以“1”开始,等等......这会使生活变得更容易(请参阅上面的LogParser)。可能有些东西将行号添加到现有文件中?

相关问题