gpt4 book ai didi

powershell - while 循环不产生管道输出

转载 作者:行者123 更新时间:2023-12-04 21:26:46 25 4
gpt4 key购买 nike

似乎 While 循环不会产生可以在管道中继续的输出。我需要处理一个大(许多 GiB)文件。在这个简单的示例中,我想提取第二个字段,对其进行排序,然后仅获取唯一值。我对 While 循环和通过管道插入事情有什么不理解的?

在 *NIX 世界中,这很简单:

cut -d "," -f 2 rf.txt | sort | uniq

在 PowerShell 中,这不会那么简单。

源数据。

PS C:\src\powershell> Get-Content .\rf.txt
these,1,there
lines,3,paragraphs
are,2,were

脚本。

PS C:\src\powershell> Get-Content .\rf.ps1
$sr = New-Object System.IO.StreamReader("$(Get-Location)\rf.txt")

while ($line = $sr.ReadLine()) {
Write-Verbose $line
$v = $line.split(',')[1]
Write-Output $v
} | sort

$sr.Close()

输出。

PS C:\src\powershell> .\rf.ps1
At C:\src\powershell\rf.ps1:7 char:3
+ } | sort
+ ~
An empty pipe element is not allowed.
+ CategoryInfo : ParserError: (:) [], ParseException
+ FullyQualifiedErrorId : EmptyPipeElement

最佳答案

让它变得比需要的复杂一点。您有一个没有标题的 CSV。以下应该有效:

Import-Csv .\rf.txt -Header f1,f2,f3 | Select-Object -ExpandProperty f2 -Unique | Sort-Object

关于powershell - while 循环不产生管道输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40010992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com