Nat*_* II 2 windows csv powershell
我有一个CSV文件使用不同于默认值的不同引号和文本分隔符字符.我知道分隔符有一个不同分隔符的选项,但我不知道如何摆脱引号字符.
Import-Csv 'C:\test.txt' -Delimiter "(character U+0014 is used here, won't show here)"
Run Code Online (Sandbox Code Playgroud)
但引号字符是U + 00FE,我需要删除它,所以我可以得到没有任何特殊字符的文本.我不想把它写到一个新文件.我想将csv导入变量,因此我可以对其进行一些分析.例如,查看字段是否为空.
有任何想法吗?
分隔符实际上不是问题,因为你可以这样做
-Delimiter "$([char]0x14)"
Run Code Online (Sandbox Code Playgroud)
至于引号,您可以使用预处理步骤,然后使用ConvertFrom-而不是Import-CSV:
Get-Content test.txt |
ForEach-Object { $_ -replace ([char]0xFE) } | # to remove the “quotes”
ConvertFrom-CSV -Delimiter "$([char]0x14)"
Run Code Online (Sandbox Code Playgroud)
如果你的行包含嵌入式引号,那么它需要更多的工作,并且可能更容易强制引用每个字段:
$14 = "$([char]0x14)"
$_ -replace ([char]0xFE) -replace '"', '""' -replace "(?<=^|$14)|(?=`$|$14)", '"'
Run Code Online (Sandbox Code Playgroud)