在 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列表中。