【问题标题】:How to clean up some data in a csv file using Powershell scripting and save the result as a new csv file?如何使用 Powershell 脚本清理 csv 文件中的一些数据并将结果另存为新的 csv 文件?
【发布时间】:2018-06-03 04:47:55
【问题描述】:

我有一个 3 列的 csv (employees.csv) 文件,其中包含 'n' 的员工详细信息数量,在我的第一列中,我有 employeeid 格式为 11_22$(contain integers and non integer values-string),在这里我想删除所有特殊字符和我只想保留1122(only integers)

在我的第二列中,我有他们的网站地址,格式为www.website.com,在这里我想用http 替换www,即我需要http.website.com。在我的第三列中,我的出生日期为 YYYY:MM:DD 格式,我想将其更改为 DD:MM:YYYY 格式。 最后我想将结果保存/导出到一个新的 csv 文件。如何使用 PowerShell 脚本实现所有这些?

【问题讨论】:

  • 请复制并粘贴您尝试解决问题的代码。 SO 不是免费的脚本编写服务。如果你需要程序员,你可以试试stackoverflowbusiness.com/talent
  • 虽然 javascript/PowerShell 中的 RegEx 解决方案可能看起来很相似,但您应该选择采用哪种方式并删除其他标签。

标签: powershell csv


【解决方案1】:

虽然我不知道您为什么希望网站变成类似“http.website.com”而不是“http://website.com”,但您可以使用下面的代码来实现。

########################################################################
# your input file 'employees.csv" looks like this
########################################################################

"employeeid","website","dob"
"11_22$","www.website.com","2000:04:12"
"22_33$","www.stackoverflow.com","1990:04:12"
"33_44$","www.somothersite.org","1970:04:12"


########################################################################
# after running the code the new file 'newemployees.csv' looks like this
########################################################################

"employeeid","website","dob"
"1122","http.website.com","12:04:2000"
"2233","http.stackoverflow.com","12:04:1990"
"3344","http.somothersite.org","12:04:1970"



$newcsv = @()
Import-Csv -Path $PSScriptRoot\employees.csv | ForEach-Object {
    $newcsv += New-Object -TypeName PSObject -Property ([ordered]@{
        employeeid = $_.employeeid -replace '\D+', ''
        website = $_.website -replace 'www', 'http'
        dob = ([datetime]::ParseExact($_.dob, 'yyyy:MM:dd', [System.Globalization.CultureInfo]::InvariantCulture)).toString('dd:MM:yyyy')
    })
}
$newcsv | Export-Csv -Path $PSScriptRoot\newemployees.csv -Force -NoTypeInformation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-30
    相关资源
    最近更新 更多