批量提取文本文件中的行到一个CSV

时间:2011-10-20 22:16:29

标签: text csv batch-file command

所以我有一个非常简单的问题,但我有点迟钝,所以需要一些帮助!

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

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

例如,文本文件(标注为1.txt到5000.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 个答案:

答案 0 :(得分:1)

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

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

祝你好运!

答案 1 :(得分:1)

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

如果您不喜欢编程,可以查看键盘宏录制器。通常,您点击“记录”并手动为一个文件Alt + Tab; DownArrow到下一个文件并点击“停止”。然后将宏指定给组合键。反复按键组合。将一次执行一个文件。对于5,000个文件,您可能会发现5,000次击键比在陌生环境中学习奇怪的编程语言更容易。

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