将最后一列 CSV powershell 中的姓氏、名字更改为名字、姓氏

Changes last name, first name to first name, last name in last column CSV powershell

我是Powershell的新手。我试图更改 CSV 文件最后一列中的姓氏、名字到名字、姓氏,并将我所做的所有更改导出到新的 csv 文件。

数据是这样的。

Sport, Gender, Zip, Recruiter
"Baseball","Male", "12345", "John, Wayne"

我尝试使用

Get-Content "C:\import.csv" |    
ForEach-Object {$_.Recruiter -replace ",", ""} |      
ForEach-Object {$_.Sport -replace ",", ""} |     
Set-content "C:\export.csv"  

这是一个示例代码,当然,它不起作用,但我必须使用 ForEach-Object 为每一列更改一堆标点符号,并且想要最后一列 "F_name L_name"。当我使用 $_.Recruiter 调用该列时,我只得到空的 csv 文件。当我使用 Import-csv 而不是 Get-content 时,我只选择了列,所有其他列都丢失了。任何帮助将不胜感激。

谢谢。

我认为您使用 Import-Csv 来完成这项任务是正确的。将这些字段作为对象属性使用比将它们解析为字符串要容易得多。试试这个。

Import-Csv "import.csv" | 
foreach { 
    $_.Recruiter = "{1}, {0}" -f ($_.Recruiter -split ', ')
    $_ 
} |
Export-Csv "export.csv"

foreach中的第一行将Recruiter字段中的firstname/lastname进行拆分,将它们反转,然后放回对象中。 foreach 中的第二行只是将整个对象(包括您未接触的字段)放回管道中。