【发布时间】:2018-10-23 15:07:51
【问题描述】:
我有大量的.txt 文件从 pdf 中提取并使用逗号分隔符进行格式化。
我正在尝试将这些文本文件彼此附加,并在每个文件之间添加一个新行。在格式化过程的早期,我采用多行输入并将其格式化为一行,条目以逗号分隔。
然而,当在csv 中将一个 txt 文件附加到另一个文件时,会返回先前带有许多换行符的格式。所以我的最终输出是有效的csv,但并不代表每个文本文件都是一行csv 条目。如何确保从 txt 到 csv 的转换保留 txt 文件的格式?
我使用了Export-CSV、Add-Content 和>> 运算符,结果相似。
总而言之,单个 .txt 文件具有以下格式:
,927,Dance like Misty"," shine like Lupita"," slay like Serena. speak like Viola"," fight like Rosa! ,United States ,16 - 65+
在csv 文件中一起附加时变成以下内容:
,927
,Dance like Misty"," shine like Lupita"," slay like Serena. speak like Viola"," fight like Rosa!
,United States
,16 - 65+
数据是如何准备的:
删除新行
Foreach($f in $FILES){(Get-Content $f -Raw).Replace("`n","") | Set-Content $f -Force}
在每个 txt 文件的末尾添加一个新行
foreach($f in $FILES){Add-Content -Path $f -value "`n" |Set-Content $f -Force}
尝试转换为 CSV,每行一个文本文件,带逗号分隔符:
cat $FILES | sc csv.csv
或者
foreach($f in $FILES){import-csv $f -delimiter "," | export-csv $f}
或者
foreach($f in $FILES){ Export-Csv -InputObject $f -append -path "test.csv"}
返回csv,每个逗号分隔值在一个新行上,而不是每个 txt 文件作为一行。
【问题讨论】:
-
别忘了问你的问题。
-
Merill 我认为我们需要更多信息。您能否向我们展示您用于从文本文件转换为连接的 CSV 的代码?请尝试提供minimal reproducible example 以获得最佳答案。
-
@Bill_Stewart -- 更新了附加信息:如何确保从 txt 到 csv 的转换保留 txt 文件的格式?
-
@briantist -- 已更新,谢谢!
标签: powershell csv export-to-csv