使用特殊字符重命名CSV文件中的列标题

时间:2018-05-09 12:22:43

标签: powershell csv

我的标题如下:

Avis,N° Invent.,Cd.Srv.Cl.,Client Name

我发现此代码可以更改我的标题

Import-Csv "$treatmentfolder\data.csv" |
    Select-Object @{expression={$_.Avis}; label='avis'} |
    Export-Csv -NoTypeInformation "$treatmentfolder\data2.csv"

如何更改字符为空格的标题名称,.°等?

2 个答案:

答案 0 :(得分:3)

要选择并重命名特定字段,请将要更改其名称的字段的名称放在引号中:

... | Select-Object @{n='no_invent';e={$_.'N° Invent.'}}, ... | ...

除了创建重命名的字段外,要替换特定字段,请排除原始字段:

... | Select-Object *,@{n='no_invent';e={$_.'N° Invent.'}} -Exclude 'N° Invent.' | ...

答案 1 :(得分:2)

由于CSV只是一个文本文件,我们可以将其视为文件第一行的字符串替换(数组项first_user

此选项使用简单的正则表达式删除任何不属于0 0-9 a-z A-Z,(空格)的内容,所以只需修改你想留在正则表达式中的任何其他字符。这适用于任何标题名称。

另一个选项是将多个$content = Get-Content -Path "$treatmentfolder\data.csv" $content[0] = $content[0] -replace '[^0-9a-zA-Z, ]' Set-Content "$treatmentfolder\data.csv" 链接在一起,这使您可以根据需要添加/删除/更改标题。但与上面的选项不同,它是硬编码到特定的标题名称,因此不能简单地运行不同的文件。

replace