【问题标题】:Filter in csv using powershell使用powershell在csv中过滤
【发布时间】:2022-01-09 08:05:18
【问题描述】:

我有一个csv要在power shell中导入,我可以用命令导入文件:

Import-Csv -Path 'c:/.../etc' -Delimiter ","

并像这样执行一些简单的过滤器:

$b = "Date development"
$a| Where {$_.$b -l '11/06/2021'} | Format-Table

鉴于此,我想知道如何过滤日期戳之间的间隔。格式为:

Name, development date, ID  --- Headers
P0113D, 10/06/2021,33  
P0123D, 4/16/2020, 42  
P0423D, 10/25/2021, 213  
P0113D, 11/22/2021, 298

我想导入从 10/06/2021 到 10/25/2021 29 的日期范围并导出过滤后的文件。

提前致谢!

【问题讨论】:

    标签: powershell csv


    【解决方案1】:

    您可以这样做,请注意,我们使用的是$_.'development date' -as [datetime],这会将development date 列上的当前值(strings)转换为datetime 对象。

    在此示例中,它过滤了 10/06/202110/25/2021 之间的范围,包括两个日期。

    @'
    Name, development date, ID
    P0113D, 10/06/2021,33  
    P0123D, 4/16/2020, 42  
    P0423D, 10/25/2021, 213  
    P0113D, 11/22/2021, 298
    '@ | ConvertFrom-Csv | Where-Object {
        $date = $_.'development date' -as [datetime]
        $date -ge [datetime]'10/06/2021' -and $date -le [datetime]'10/25/2021'
    }
    

    输出:

    Name   development date ID
    ----   ---------------- --
    P0113D 10/06/2021       33 
    P0423D 10/25/2021       213 
    

    请注意,以上是作为示例,如果您从 CSV 文件中尝试它,语法将是:

    Import-Csv -Path 'c:/.../etc' -Delimiter "," | Where-Object { ....
    

    为了阐明使用-as 和将[datetime] 转换为字符串之间的区别,这里有一个实际示例:

    [datetime]'11/22/2021'       # => Monday, November 22, 2021 12:00:00 AM
    '11/22/2021' -as [datetime]  # => Monday, November 22, 2021 12:00:00 AM
    [datetime]'notadate!!!'      # => Exception thrown
    'notadate!!!' -as [datetime] # => Nothing is returned // no errors
    

    【讨论】:

    • 就是这样!非常感谢!
    • @Ashurayaz 乐于提供帮助 :)
    【解决方案2】:

    给你。请更改下面的片段以匹配您的日期范围。有什么问题请回复。谢谢。

    Import-Csv -Path 'c:/.../etc' -Delimiter ","
    
    $filterDate = (Get-Date).AddDays(-7)
    
    $Data = Import-CSV "H:\Data.csv" | Where-Object {$_.Date -as [datetime] -lt $filterDate}
    

    【讨论】:

    • 非常感谢您抽出宝贵时间。
    猜你喜欢
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-03
    相关资源
    最近更新 更多