windows - 在 powershell 中使用不同的分隔符和引号导入 csv

标签 windows powershell csv

我有一个 CSV 文件,使用不同的引号和文本分隔符而不是默认字符。我知道对于分隔符,有一个不同分隔符的选项,但我无法找到如何摆脱引号字符。

Import-Csv 'C:\test.txt' -Delimiter "(character U+0014 is used here, won't show here)"

但是引号字符是 U+00FE,我也需要删除它,这样我才能得到没有任何特殊字符的文本。我不想把它写到一个新文件中。我想将 csv 导入一个变量,这样我就可以对其进行一些分析。例如,查看某个字段是否为空。

有什么想法吗?

最佳答案

分隔符实际上不是问题,因为您可以用

-Delimiter "$([char]0x14)"

对于引号,您可以使用预处理步骤,然后使用 ConvertFrom- 而不是 Import-CSV:

Get-Content test.txt |
    ForEach-Object { $_ -replace ([char]0xFE) } | # to remove the “quotes”
    ConvertFrom-CSV -Delimiter "$([char]0x14)"

如果您的行包含嵌入式引号,那么它需要更多的工作,并且可能更容易强制引用每个字段:

$14 = "$([char]0x14)"
$_ -replace ([char]0xFE) -replace '"', '""' -replace "(?<=^|$14)|(?=`$|$14)", '"'

关于windows - 在 powershell 中使用不同的分隔符和引号导入 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12283123/

相关文章:

c++ - Qt/CMake : missing ':' before identifier 'slots' `

windows - 计划任务无法在外部服务器上写入文件

function - 为什么我在 PowerShell 中看不到脚本的参数?

c# - PowerShell 二进制模块程序集依赖性错误

powershell - 我是否需要try/catch和-ErrorAction?

r - 如何通过合并 csv 文件创建数据框,然后基于它创建 Shiny 的应用程序?

c++ - 这种宏有什么意义?

python - 在 CSV 文件中写入和读取 float 和字符串 - python

amazon-web-services - Athena 查询返回值中的引号

windows - 用于 Windows 的 OpenAcc