繁体   English   中英

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

[英]Powershell csv combine two columns and delete data after space

我有一个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

我想通了重命名删除列,但我不知道如何将数据从一个合并到另一个,并删除姓氏。

任何帮助都将是惊人的! 即使您可以填写部分问题,我也可以继续玩

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

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

如果您要保存输出,请使用管道到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列的第一部分 (由空格分隔)。

希望能有所帮助(有道理),干杯:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM