我有一些难题正在使用一些需要清理并加载到数据库中的CSV文件。
我对PowerShell非常擅长,但是使用正则表达式和csv列操作很差。
这是我遇到的问题;有一个'笔记'我正在使用的CSV文件中的字段,可以有各种各样的字符。主要问题是我需要删除换行符,并在字段中引用WITHIN,但将常规换行符和文本限定引号保留在它们应该的位置。我可以删除整个文件中的换行符和引号,但不能特别删除字段中的字符。
我尝试使用正则表达式来做这件事,但我没有太多运气,老实说,我不熟悉正则表达式。我希望有人能帮到这个!
编辑:这是示例数据
"123" "" "2017-02-13 10:26:08" "123456789" "2017-02-10" "No" "Yes" "Yes" "No" "sample text
<crlf> ""additional text""
<crlf>
<crlf> " "Y" <crlf>
这应该只是一行,除了最后。
答案 0 :(得分:1)
内置Import-Csv
cmdlet正确导入多行和引用值。
您的文件以制表符分隔,因此我们会指定"`t"
:
Import-Csv c:\file.csv -Delimiter "`t" | ForEach {
$_.notes = $_.notes -replace '"', '' -replace '[\r\n]+', ' '
$_
} | Export-Csv c:\output.csv -Delimiter "`t" -NoTypeInformation -Encoding UTF8