我有一个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
我已经想出重命名删除列但我不知道如何将数据从一个组合到另一个并删除姓氏....
任何帮助都会令人惊叹!即使你可以填写我可以继续玩的部分问题
答案 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列的第一部分(用空格分隔)。
希望有帮助(并且有意义), 干杯:)