过滤/删除CSV文件的最后一列

问题描述 投票:1回答:1

我需要过滤CSV行的最后一个元素。所以在每个文件的最后一列。据我所知,我做了这个导入来过滤和导出最后一列。

(Import-Csv Test.csv -Delimiter "," -Header "R","S","T","U","V","W","X","Y","Z","A") |
    Select-Object -ExcludeProperty $_.A |
    Export-Csv test1.csv –NoTypeInformation  

然后我的导出文件包含一个重复的标题,带有,,,,,,,,,添加+每行都有,,,,,,,,,也添加了。

有没有更好的方法来过滤最后一列或删除它?

编辑:这是我的输入文件:

R,"S","T","U","V","W","X","Y","Z","A"
R,"Software","Test","Uruguay","22","Waldschutzinitiative","Xander","Ytho","Zahlung","AJ3DJF"
RwieRichard,"S","Test","Uruguay","22","Waldschutzinitiative","Xander","Ytho","Zahlung","AJ3DJF"
RwieRichard,"Software","T","Uruguay","22","Waldschutzinitiative","Xander","Ytho","Zahlung","AJ3DJF"
RwieRichard,"Software","Test","U","22","Waldschutzinitiative","Xander","Ytho","Zahlung","AJ3DJF"
RwieRichard,"Software","Test","Uruguay","V","Waldschutzinitiative","Xander","Ytho","Zahlung","AJ3DJF"
RwieRichard,"Software","Test","Uruguay","22","We","Xander","Ytho","Zahlung","AJ3DJF"
RwieRichard,"Software","Test","Uruguay","22","Waldschutzinitiative","X","Ytho","Zahlung","AJ3DJF"
RwieRichard,"Software","Test","Uruguay","22","Waldschutzinitiative","Xander","Y","Zahlung","AJ3DJF"
RwieRichard,"Software","Test","Uruguay","22","Waldschutzinitiative","Xander","Ytho","Z","AJ3DJF"
RwieRichard,"Software","Test","Uruguay","22","Waldschutzinitiative","Xander","Ytho","Zahlung","A"
RwieRichard,"Software","Test","Uruguay","22","Waldschutzinitiative","Xander","Ytho","Zahlung","AJ3DJF"

输出文件:

"R,""S"",""T"",""U"",""V"",""W"",""X"",""Y"",""Z"""
"R,""S"",""T"",""U"",""V"",""W"",""X"",""Y"",""Z"",""A"",,,,,,,,"
"R,""Software"",""Test"",""Uruguay"",""22"",""Waldschutzinitiative"",""Xander"",""Ytho"",""Zahlung"",""AJ3DJF"",,,,,,,,"
"RwieRichard,""S"",""Test"",""Uruguay"",""22"",""Waldschutzinitiative"",""Xander"",""Ytho"",""Zahlung"",""AJ3DJF"",,,,,,,,"
"RwieRichard,""Software"",""T"",""Uruguay"",""22"",""Waldschutzinitiative"",""Xander"",""Ytho"",""Zahlung"",""AJ3DJF"",,,,,,,,"
"RwieRichard,""Software"",""Test"",""U"",""22"",""Waldschutzinitiative"",""Xander"",""Ytho"",""Zahlung"",""AJ3DJF"",,,,,,,,"
"RwieRichard,""Software"",""Test"",""Uruguay"",""V"",""Waldschutzinitiative"",""Xander"",""Ytho"",""Zahlung"",""AJ3DJF"",,,,,,,,"
"RwieRichard,""Software"",""Test"",""Uruguay"",""22"",""We"",""Xander"",""Ytho"",""Zahlung"",""AJ3DJF"",,,,,,,,"
"RwieRichard,""Software"",""Test"",""Uruguay"",""22"",""Waldschutzinitiative"",""X"",""Ytho"",""Zahlung"",""AJ3DJF"",,,,,,,,"
"RwieRichard,""Software"",""Test"",""Uruguay"",""22"",""Waldschutzinitiative"",""Xander"",""Y"",""Zahlung"",""AJ3DJF"",,,,,,,,"
"RwieRichard,""Software"",""Test"",""Uruguay"",""22"",""Waldschutzinitiative"",""Xander"",""Ytho"",""Z"",""AJ3DJF"",,,,,,,,"
"RwieRichard,""Software"",""Test"",""Uruguay"",""22"",""Waldschutzinitiative"",""Xander"",""Ytho"",""Zahlung"",""A"",,,,,,,,"
"RwieRichard,""Software"",""Test"",""Uruguay"",""22"",""Waldschutzinitiative"",""Xander"",""Ytho"",""Zahlung"",""AJ3DJF"",,,,,,,,"
powershell
1个回答
1
投票

要让-ExcludeProperty工作,你还必须指定-Property。此外,参数的参数必须只是属性名称,而不是$_.A

更改

... | Select-Object -ExcludeProperty $_.A | ...

... | Select-Object -Property * -ExcludeProperty A | ...

编辑:从您所谓的示例输出判断,您的实际代码和数据之间的分隔符不匹配。您的数据是以逗号分隔的,并且您为导入指定了不同的分隔符,或者您为导入指定了逗号,但实际数据由不同的字符分隔。无论哪种方式,解决这个问题。如果您的数据实际上是以逗号分隔的,则甚至不需要为导入指定分隔符,因为Import-Csv默认为,

此外,您的数据似乎已经有标题,因此您不能在导入期间指定标题。

如果以逗号分隔,则应正确导入CSV:

Import-Csv 'test.csv' | ...

如果以分号分隔,则应正确导入CSV:

Import-Csv 'test.csv' -Delimiter ';' | ...
© www.soinside.com 2019 - 2024. All rights reserved.