powershell - 如何使用 Powershell 脚本清理 csv 文件中的一些数据并将结果另存为新的 csv 文件?
问题描述
我有一个 3 列的 csv(employees.csv)文件,其中包含'n'
员工详细信息的数量,在我的第一列中我有employeeid
一个格式11_22$(contain integers and non integer values-string)
,在这里我想删除所有特殊字符,我只想保留1122(only integers)
.
在我的第二列中,我有他们的网站地址和格式www.website.com
,在这里我想替换www
为http
我需要的http.website.com
。在我的第三列中,我有他们的出生日期格式YYYY:MM:DD
,我想将其更改为DD:MM:YYYY
格式。最后我想将结果保存/导出到一个新的 csv 文件。如何使用 PowerShell 脚本实现所有这些?
解决方案
虽然我不知道您为什么希望网站变成类似“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
推荐阅读
- excel - 基于一天 24 小时房间使用高峰时间的 Excel 折线图
- angular - PrimeNG - 无法导入 GrowlModule
- ffmpeg - 使用 filter_complex 修剪后 Ffmpeg 音轨丢失
- google-apps-script - Gmail 插件创建
- c++ - 将多个非数字插入 std::unordered_set
- c++ - 是否可以在 C++ 多线程而不是 cuda/opencl 中运行 GPU?
- xpath - XPath 函数以开始时抛出异常,以正常工作
- c# - 合并来自多个来源的不同类
- ajax - Entity Framework Core 2.1 打破了 Ajax 响应
- symfony - 确保路线安全时如何使用graphiql?