powershell - 如何使用 PowerShell 选择无标题 csv 文件的前 10 列?

标签 powershell csv

我有一个名为 test.csv ($testCSV) 的 CSV 文件。 此文件中有很多列,但我只想选择前 10 列并将这 10 列放入另一个 CSV 文件中。 请注意,我没有任何列标题,因此无法根据列名选择列。

以下代码行将获取文件的前 10 行:

$first10Rows = Get-Content $testCSV | select -First 10

但是,我需要前 10 列的所有数据,我正在努力寻找解决方案。

我还查看了拆分文件并尝试按如下方式返回第一列:

$split = ( Get-Content $testCSV) -split ','
$FirstColumn = $split[0]

我曾希望 $split[0] 会返回整个第一列,但它只返回文件中的第一个字段。

非常感谢您对解决此问题的任何帮助。

提前致谢。

******更新******

我正在使用vonPryz下面回答的方法来解决这个问题,即:

Import-Csv -Delimiter "," -Header @("a","b","c") -Path $testCSV  | Select a,b

但是,我现在还尝试通过添加以下额外代码,仅在 b 列不为空的情况下导入 CSV 文件:

Import-Csv -Delimiter "," -Header @("a","b","c") -Path $testCSV  | Select a,b | where b -notmatch $null

我需要这样做以加快脚本速度,因为有数万行 b 列为空,我不需要导入这些行。 但是,上面的代码没有返回任何数据,要么意味着代码一定是错误的,要么它认为字段 b 不为空。 2行文本文件的示例是:

1,2,3
x,,z

我只想要第二列被占用的行。

我希望我已经一次又一次地解释清楚,感谢任何帮助。

************************答案**************************

导入-Csv -Delimiter ","-Header @("a","b","c") -Path $testCSV |选择 a,b | Where-Object { $_.b -ne '' }

谢谢!

最佳答案

缺少列标题没有问题。 cmdlet Import-CSV 可以使用 -Header 开关指定 header 。假设测试数据保存为 C:\temp\headerless.csv 并包含

val11,val12,val13,val14
val21,val22,val23,val24
val31,val32,val33,val34

将其导入为 CSV 很简单:

Import-Csv -Delimiter "," -Header @("a","b","c","d") -Path C:\temp\headerless.csv

#Output
a     b     c     d
-     -     -     -
val11 val12 val13 val14
val21 val22 val23 val24
val31 val32 val33 val34

仅选择列 ab 也不难:

Import-Csv -Delimiter "," -Header @("a","b","c","d") -Path C:\temp\headerless.csv | select a,b | ft -auto

#Output    
a     b
-     -
val11 val12
val21 val22
val31 val32

关于powershell - 如何使用 PowerShell 选择无标题 csv 文件的前 10 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29796047/

相关文章:

arrays - 比较一个数组中的字符串与另一个数组中的通配符字符串

powershell - 使用 2 遍编码设置 FFmpeg 进程优先级

powershell - RavenDB 安装问题 System.Net.Sockets.SocketException (10013)

python - 按列对csv进行排序

python - 登录认证系统

C# API 库和记录到 PowerShell 的 WriteVerbose()

powershell - 更改 Windows 10 屏幕刷新率。 60 则 59,59 则 60

node.js - 使用 fast-csv 同步处理 csv 文件

python - 检索 pandas 中 read_csv 推断的分隔符

powershell - 有没有办法强制 powershell -Export-CSV cmdlet 维护特定的列顺序?