【问题标题】:PowerShell CSV manipulationPowerShell CSV 操作
【发布时间】:2013-10-02 19:27:02
【问题描述】:

我有一个 .csv 文件,其中包含第一列中的用户名。它们采用 FirstName LastName 的形式。我想取 FirstName 并将 LastName 的第一个字符添加到它上面,然后删除空格。然后我想添加@someemailaddress.com。

示例如下:

这就是我所拥有的:

DisplayName, OtherColumn
Sam Jones, otherdata
Paul Jones, otherdata

这就是我想要的:

DisplayName, OtherColumn
SamJ@someemailaddrses.com, otherdata
PaulJ@someemailaddress.com, otherdata

想法?

【问题讨论】:

  • @alroc 我不知道如何仅操作第 1 列中的数据。但是,如果可以将其分配给变量,那么我确信可以运行一些 foreach 并查找第一个空格,然后在空格后面抓取 1 个字符,然后附加电子邮件地址。
  • 确实可以赋值给变量并进行操作。导入、操作和导出 CSV 数据是 PowerShell 中非常常见的任务。首先查看Import-CSVExport-CSV 和循环。当您来这里寻求帮助时,通常认为您已经尝试了解决方案并且卡在了某些代码上。表明你已经做出了诚实的努力,然后人们可以帮助你克服障碍。

标签: powershell csv


【解决方案1】:

通过使用 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

【讨论】:

  • +1 不知道你可以给 Select-Object 一个字典。这段时间我一直在努力……
  • @benknighthorse 我更改了表达式,使其只需调用一次Split
猜你喜欢
  • 2019-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-03
  • 1970-01-01
  • 2010-10-19
相关资源
最近更新 更多