2013-10-02 74 views
2

我有一個.csv文件,其中包含第一列中的用戶名。它們以FirstName LastName的形式出現。我想取FirstName並將LastName的第一個字符添加到它上面,並刪除該空格。然後我想添加@ someemailaddress.com。PowerShell CSV操作

這裏是例子:

這是我有:

DisplayName, OtherColumn 
Sam Jones, otherdata 
Paul Jones, otherdata 

這就是我想要的:

DisplayName, OtherColumn 
[email protected], otherdata 
[email protected], otherdata 

想法?

+0

@alroc我不知道如何操作只是在第1列的數據,但是,如果能夠被分配給一個變量,然後我相信一些的foreach可以運行,並尋找第一個空間,然後在空格後面抓取1個字符,然後附加電子郵件地址。 – SMPLGRP

+0

它確實可以分配給一個變量並進行操作。導入CSV數據,操作它並導出它是PowerShell中非常常見的任務。首先查看'Import-CSV','Export-CSV'和循環。當你到這裏尋求幫助時,通常會期望你已經嘗試了一個解決方案並且陷入了一段代碼中。表明你已經做出了誠實的努力,然後人們可以幫助你克服障礙。 – alroc

回答

6

通過使用Import-CsvSelect-ObjectExport-Csv,你可以建立一個管道是可以獲得CSV文件的內容,選擇一個新的計算DisplayName屬性與執行的字符串操作表達式,數據出出口追溯到CSV。

Import-Csv data.csv | Select-Object @{ 
    Name = "DisplayName" 
    Expression = { 
     $parts = $_.DisplayName.Split(); 
     $parts[0] + $parts[1][0] +"@someemailaddress.com" 
    } 
}, OtherColumn | Export-Csv data-new.csv 
+0

+1不知道你可以給一個字典選擇對象。我一直在艱難的方式做這個... – Phil

+0

太棒了!做得好! – SMPLGRP

+0

@benknighthorse我改變了表達式,所以只需要調用'Split'一次。 –