2015-09-03 39 views
0

我有一个文本文件,我想将其转换为csv文件。 文本文件数据如下。文本数据转换为CSV

Backed Up   Expires  Files  KB C Sched Type Policy 
    ---------------- ---------- -------- -------- - ------------ ------------ 
    08/14/2015 08:12 INFINITY  24270 5790924 N Full Backup WIN_DEFAULT 
    08/14/2015 08:01 INFINITY   14 180963 N Full Backup WIN_DEFAULT 
    08/14/2015 18:00 INFINITY   13 1378724 N Full Backup WIN_DEFAULT 
    08/11/2015 09:45 INFINITY  15500 22320247 N Full Backup WIN_DEFAULT 
    08/11/2015 09:27 INFINITY  108540 23920970 N Full Backup WIN_DEFAULT 
    08/11/2015 09:27 08/02/2016  15 1470559 N Full Backup WIN_DEFAULT 

我试过下面的脚本,但它显示在csv文件的单列中。

import-csv ANP.TXT -delimiter "`t" | export-csv ANP1.csv 

我试图Get-contentConvertto-CSV很好,但输出单柱即将到来。

请告诉我如何将其转换为csv。

+0

我认为问题是,你的文件是不是制表符分隔的,我试着用同样的命令你样本数据并获得与您相同的结果,然后使用制表符编辑文件替换间距,并以此方式工作。 –

+0

感谢您的评论。但是,无论如何,我可以通过脚本将其转换为csv。我不想在多个文件上手动执行相同的活动。 – Ironic

+0

如果它实际上不是制表符分隔的数据,那么您可能必须读取每行,然后将每个字段值作为行的子字符串,这不应该太难,因为数据看起来像必须使用固定宽度的列? –

回答

1

首先使制表符分隔:

Get-Content ANP.txt | ForEach-Object { $_.trimStart().trimEnd() -replace ' +',"`t"} > ANP2.txt 

然后转换成CSV:

import-csv ANP2.TXT -delimiter "`t" | export-csv ANP.csv 
+0

感谢您的回答。我会试一试。 – Ironic