【问题标题】:Powershell - Remove Cell 1,1 from multiple CSV filesPowershell - 从多个 CSV 文件中删除 Cell 1,1
【发布时间】:2015-04-22 14:19:11
【问题描述】:

我正在做一些数据收集,在我的脚本中有一个 boo-boo 导致在没有数据的情况下创建一个标题,并且基本上扭曲了结果。现在我有 300 个 CSV,我需要删除位于单元格 1,1 中的第一个标题,因为第一列中的所有数据都用于第二个标题

我在想类似下面的事情,但我不知道在“-ExcludeProperty”标签下放什么……如果我把这个复杂化了,请告诉我

Get-ChildItem C:\temp *.csv | foreach { $filename=$_.fullname; Import-Csv $filename | select * -ExcludeProperty  |Export-csv $filename.Replace(".csv",".new.csv") -NoTypeInformation }

【问题讨论】:

    标签: powershell csv


    【解决方案1】:
    ls C:\temp *.csv | % {
        if ($_ -inotlike '*.new.csv') {
            $header = gc $_ -TotalCount 1
            $header = $header -replace '^[^,]*,', ''
            $rest = gc $_ | select -Skip 1
            $target = $_ -ireplace '\.csv$', '.new.csv'
            $header, $rest | sc $target
        }
    }
    

    这假定单元格 1,1 不包含带引号的逗号。其他单元格的内容无关紧要。

    【讨论】:

    • 做了一些修改,因为它不太有效,重写如下ls C:\Temp*.csv | % {$header = gc $_ -TotalCount 1 $headers = $header -replace '^[^,]*,', '' $rest = gc $_ | select -Skip 1 $target = $_ -replace ".csv",".TimeStampRemoved.csv" $headers, $rest | sc $target }
    • 出于某种原因,-Exclude 不适用于-Include。我已经更新了代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-28
    • 2023-03-30
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    • 2016-05-15
    相关资源
    最近更新 更多