Powershell辅助数据提取

时间:2018-06-20 17:48:07

标签: database powershell date extract dump

我在网络共享中转储了一个数据仓库文件。因此,我无法进行大量的预操作,因此我需要从每一行中提取日期,其中每一行的日期始终以“,然后是8”字符日期(此格式为19990312)开头,这是yyyyddmm,我需要要有一个功能强大的“方式”将日期提取为mm / dd / yyyy格式,每行的长度略有不同,但始终是该行的最后8个“字符”,下面的日期是该文件的示例odf。任何帮助将不胜感激

"920:Bob Bikes                                   ",19870707
"2471:CAMPBEL                                       ",19971010
"2480:PARADISE cookis                                               ",19990720
"2481:CAFE                                               ",20050720
"2481:PARAE                                               ",20050720
"2482: BONES                                                   ",20050720

1 个答案:

答案 0 :(得分:3)

您问题的提取部分类似于Read line-by-line file and split values

因此,让我们将示例文本行放入file.txt中,并根据逗号将其分解,以将第六部分作为日期字段:

$yourdate = Get-Content -Delimiter "," -Path file.txt
$yourdate[6]

结果为20050720

问题的第二部分类似于converting date time format in powershell

因此,您想要将该字符串设置为日期,然后将该日期设置为所需的格式:

[Datetime]::ParseExact($yourdate[6], 'yyyymmdd', $us) | Get-Date -UFormat "%m/%d/%Y"

您的最终结果是: 2005年1月20日

最初以一种更容易理解代码第6部分的方式说明了这一点。但是,如果零件的数量不同,并且日期并不总是第六部分,则@TheMadTechnician是正确的,您可以将最后一部分称为$ yourdate [-1]。

所以最后一行看起来像这样:

[Datetime]::ParseExact($yourdate[-1], 'yyyymmdd', $us) | Get-Date -UFormat "%m/%d/%Y"