Powershell csv合并了两列并在空格后删除了数据

时间:2018-01-05 06:12:42

标签: powershell csv

我有一个csv需要编写脚本来每月更新它目前看起来像这样

UserID    Name
120       john doe
121       jane doe
122       mike name
123       joe blow

我需要保留现有的UserID并在Name之前添加UserID数据并删除姓氏。

UserID    ID
120       120-john
121       121-jane
122       122-mike
123       123-joe

我已经想出重命名删除列但我不知道如何将数据从一个组合到另一个并删除姓氏....

任何帮助都会令人惊叹!即使你可以填写我可以继续玩的部分问题

1 个答案:

答案 0 :(得分:1)

这可以通过导入csv并将其传递给具有计算属性的Select-Object来轻松完成......

Import-Csv .\Input.csv | Select-Object UserID, @{n="ID";e={$_.UserID + "-" + $_.Name.Split(" ")[0]}}

如果要保存输出,请使用Pipe to Export-Csv ...

Import-Csv .\Import.csv | Select-Object UserID, @{n="ID";e={$_.UserID + "-" + $_.Name.Split(" ")[0]}} | Export-Csv -NoTypeInformation Output.csv

那么这里发生了什么?在我的select语句的第二部分,(@ {..}部分):

@{n="ID";e={$_.UserID + "-" + $_.Name.Split(" ")[0]}}

..我说,列的名称(n =)是" ID",并且值由表达式(e =)确定,该表达式位于下一对之间大括号。
并且表达式是这样的,取UserID($ .UserID),加上一个连字符并附加我的$ .Name列的第一部分(用空格分隔)。

希望有帮助(并且有意义), 干杯:)