2011-10-20 52 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)。可能有些東西將行號添加到現有文件中?

相關問題