更改姓氏,名字到名字,姓氏在最后一栏CSV powershell

时间:2015-01-30 22:21:34

标签: string powershell-v3.0

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

数据看起来像这样。

  

体育,性别,邮编,招聘人员   "棒球","男"," 12345","约翰,韦恩"

我尝试使用

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

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

谢谢。

1 个答案:

答案 0 :(得分:2)

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

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

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