在 powershell 中仅提取 csv 文件的前 10 行

Posted

技术标签:

【中文标题】在 powershell 中仅提取 csv 文件的前 10 行【英文标题】:Extract only the first 10 lines of a csv file in powershell 【发布时间】:2015-05-08 15:21:02 【问题描述】:

我有一个 csv 文件,想输出一个新的 csv 文件,它只包含原始文件的前 10 行。 到目前为止,我只找到了删除单行或包含某个单词的行的代码。它可能是一个 15 个字符的单行,但我不知道如何处理这个问题,任何帮助将不胜感激。我不指望你写代码,只要正确的命令就能帮助我。

【问题讨论】:

【参考方案1】:
Get-Content in.csv -Head 10 > out.csv

【讨论】:

谢谢!超级快速和优雅!【参考方案2】:
Get-Content "C:\start.csv" | select -First 10 | Out-File "C:\stop.csv"

做到了

【讨论】:

这也是一个答案,但取决于文件的大小,使用-Head 10 的答案会更有效,因为它不必读取整个文件。 不确定您使用的是哪个版本,但从 2.0 版开始,我收到一条消息,上面写着 Get-Content : A parameter cannot be found that match parameter name 'Head'。 对于 powershell 2,请使用 emekm 的答案并在“Get-Content”cmdlet 上使用“-TotalCount”参数。 我认为这不会读取整个文件,因为它是即时运行的 9GB 文件 (PowerShell 5.1)。我猜 C# 的 IEnumerable 类(或具有类似行为的东西)正在幕后用于所有这些命令和管道运算符。【参考方案3】:

推荐使用 -TotalCount 参数。特别是,如果您有一个大的 CSV 文件。 这样,您将只读取 CSV 文件的前 10 行,而不是读取所有行,选择前 10 行并提取它们。

Get-Content C:\Temp\Test.csv -TotalCount 3 | Out-File C:\Temp\Test10lines.csv

这适用于 Powershell 2 及更高版本。

【讨论】:

Linux 的等价物是什么?【参考方案4】:

你也可以使用

(Get-Content yourfile.csv)[0 .. 11]>outputfile.csv

请务必包含标题行,否则您可能会遇到问题。您还可以更改数字以获取所需的任何行。 first 和 head 标志对我不起作用。

【讨论】:

【参考方案5】:

Windows PowerShell

Get-Content -First 10'C:\Users\jason\Desktop\big_file.csv'

【讨论】:

以上是关于在 powershell 中仅提取 csv 文件的前 10 行的主要内容,如果未能解决你的问题,请参考以下文章

powershell 使用SQL文件和PowerShell从数据库中提取数据。设计用于SQL服务器并以CSV格式输出。看到这个链接:h

powershell Powershell脚本,用于从CSV中提取数据并将其放入SharePoint列表中。

远程注册表项提取程序PowerShell脚本

CSV 脚本的 PowerShell 获取计数器,编码问题

Dropzone 在对话框中仅显示 CSV 和 XLS 文件

如何在 html5 输入标签中仅选择多个 .csv 文件?