Powershell 如何制作;“导出CSV”;仅导出引用文本?

Powershell 如何制作;“导出CSV”;仅导出引用文本?,powershell,csv,export-to-csv,Powershell,Csv,Export To Csv,我有一个包含以下数据的输入文件: cod_uf;uf;nome_uf;pop_estimada 11;RO;Rondônia;1796460 12;AC;Acre;894470 13;AM;Amazonas;4207714 发出命令Import Csv“\in.Csv”-分隔符“| Export Csv”\out.Csv”-NoTypeInformation-编码utf8产生: "cod_uf","uf","nome_uf",&quo

我有一个包含以下数据的输入文件:

cod_uf;uf;nome_uf;pop_estimada
11;RO;Rondônia;1796460
12;AC;Acre;894470
13;AM;Amazonas;4207714
发出命令
Import Csv“\in.Csv”-分隔符“| Export Csv”\out.Csv”-NoTypeInformation-编码utf8
产生:

"cod_uf","uf","nome_uf","pop_estimada"
"11","RO","Rondônia","1796460"
"12","AC","Acre","894470"
"13","AM","Amazonas","4207714"
这很好,但如果只引用非数字字段会更好,如下所示:

"cod_uf","uf","nome_uf","pop_estimada"
11,"RO","Rondônia",1796460
12,"AC","Acre",894470
13,"AM","Amazonas",4207714
我找不到任何提及或示例来生成所需的输出


在使用python库时,引用非数值字段非常有用,可以将所有非引用字段转换为float类型。

您可以尝试以下方法:

$csv = @'
cod_uf;uf;nome_uf;pop_estimada
11;RO;Rondônia;1796460
12;AC;Acre;894470
13;AM;Amazonas;4207714
'@ | ConvertFrom-Csv -Delimiter ';'

($csv | ConvertTo-Csv) -replace '"([0-9]+)"','$1' | Out-File .\out.csv

$1
的作用是什么?按预期工作。一个使用文件的示例:
(Import Csv)“\input.Csv”-Delimiter”;“| ConvertTo Csv-NoTypeInformation”-replace”“([0-9]+)”,“$1”| Out file.\Out.Csv
,我添加了
-NoTypeInformation
以删除#类型信息header@AbrahamZinala
$1
是组标识符,
$0
是完全匹配,
$1
()
中的匹配项。尝试
([regex]'”([0-9]+)”).Match(($csv | ConvertTo csv)).Groups
从我的示例中帮助您理解。哦,太好了。真想不到:)哪个PowerShell版本?您是否尝试过
-QuoteFields uf,nome_uf
?5.1版。这个版本上没有实现它。