如何计算PowerShell中的行数

时间:2012-01-20 03:02:10

标签: powershell

我有一个需要在PowerShell中阅读的文本文件。

每行中的最后一个字符是Y或N.

我需要浏览文件并输出有多少Y和N.

有什么想法吗?

6 个答案:

答案 0 :(得分:16)

假设一个名为“test.txt”的文件...要获得以Y结尾的行数,您可以这样做:

get-content test.txt | select-string Y$ | measure-object -line

要获得以N结尾的行数,您可以这样做:

get-content test.txt | select-string N$ | measure-object -line

希望有所帮助。

答案 1 :(得分:7)

要在一行中获得两个计数:

gc .\test.txt | %{ if($_ -match "Y$|N$"){ $matches[0]} } | group

答案 2 :(得分:2)

Get-Content test.txt | Where-Object {$_ -match '[YN]$'} | Group-Object {$_[-1]} -NoElement

答案 3 :(得分:1)

$lastchar = @{};get-content $file |% {$lastchar[$_[-1]]++};$lastchar

答案 4 :(得分:0)

我喜欢@manojlds的答案,所以我会抛出类似的东西:

$grouped = (gc .\test.txt) -replace ".*(y|n)$",'$1' | group

(运算符也可用于数组)。

然后你可以像这样使用它:

($grouped | ? {$_.Name -eq 'y'}).count

答案 5 :(得分:0)

$(foreach ($line in [IO.File]::ReadAllLines(".\test.txt")) { 
    $line.Substring($line.Length - 1)
}) | Group