gpt4 book ai didi

powershell - 替换 CSV 第一列中的数据

转载 作者:行者123 更新时间:2023-12-03 21:02:44 26 4
gpt4 key购买 nike

我有一个包含很多列的 CSV,第一列中的数据是日期,但格式错误。我可以只选择第一列并重新设置日期格式,但我不知道如何在不覆盖所有其他数据的情况下将新数据保存到现有 CSV。

$File = "File.csv"
$Content = Get-Content $File
$timestamp = @()
$timestamp += '"' + "timestamp" + '"'
$timestamp += $Content | Foreach { $_.Split(",") | select -first 1 } | select -skip 1 -last 10000 | where {$_ -notmatch "timestamp"} | foreach {($_).Substring(1,$_.Length-2)} | foreach {get-date ($_).ToString() -Format s} | foreach {'"' + $_ + '"'}

之前:

"timestamp"
"17-Dec-2014 07:00:00 AM"
"17-Dec-2014 07:15:00 AM"
"17-Dec-2014 07:30:00 AM"
"17-Dec-2014 07:45:00 AM"
"17-Dec-2014 08:00:00 AM"

之后:

"timestamp"
"2014-12-17T07:00:00"
"2014-12-17T07:15:00"
"2014-12-17T07:30:00"
"2014-12-17T07:45:00"
"2014-12-17T08:00:00"

最佳答案

考虑文件 c:\temp\test.csv 中 csv 格式的以下数据

old_timestamp   timestamp
12/17/2014 7:00 12/17/2014 7:00
12/17/2014 7:15 12/17/2014 7:15
12/17/2014 7:30 12/17/2014 7:30
12/17/2014 7:45 12/17/2014 7:45
12/17/2014 8:00 12/17/2014 8:00

我会做这样的事情。操作 old_timestamp“列”并将更改输出回管道。

Import-CSV C:\temp\test.csv | ForEach-Object{
$_.old_timestamp = get-date $_.old_timestamp -Format s
$_
}

示例输出:

old_timestamp       timestamp      
------------- ---------
2014-12-17T07:00:00 12/17/2014 7:00
2014-12-17T07:15:00 12/17/2014 7:15
2014-12-17T07:30:00 12/17/2014 7:30
2014-12-17T07:45:00 12/17/2014 7:45
2014-12-17T08:00:00 12/17/2014 8:00

现在你可以用它做任何你想做的事,比如输出回文件!

Import-CSV C:\temp\test.csv | ForEach-Object{
$_.old_timestamp = get-date $_.old_timestamp -Format s
$_
} | Export-Csv C:\temp\updated_test.csv -NoTypeInformation

类似的方法

你可以只使用一个 Select-Object 语句来做同样的事情

Import-CSV C:\temp\test.csv | 
Select-Object @{Name="New_TimeStamp";Expression = {get-date $_.old_timestamp -Format s}},* -ExcludeProperty old_timestamp

这仅在列名不同时才有效。它将格式化列输出为 New_TimeStamp 以及通过指定 * 的其余数据。从我对您的其他问题的了解来看,这可能不会与它们很好地融合,但它是一个解决方案。

关于powershell - 替换 CSV 第一列中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27534858/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com