2012-01-20 4 views
5

Powershellで読む必要があるテキストファイルがあります。powershellの行数をカウントするには

各行の最後の文字は、私がそこにあるどのように多くのYさんとNのファイルと出力を通過する必要がありYまたはN.

のいずれかです。

アイデア?あなたは、

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

そして、Nで終わる行数を取得するには:Yで終わる行数を取得するには...「test.txtの」という名前のファイルを仮定し

答えて

6

、あなたはこれを行うことができますこれを行うことができます:

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

希望に役立ちます。

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

ここでは ある[コード] $ A =( Get-Content filename.txt | Select-String "| Y $" | Measure-Object).count [/ code] –

6

アレイも同様)。

その後、あなたはこのようにそれを使用することができます:変数にこの答えを好きなのGooglerのため

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

'$ matches'の使用方法を示すnice: – stej

+0

+1それは本当に滑らかです! – Aaron

0

私は@manojldsによって答えが好きなので、私は似たようなスローされます::

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

(オペレーターが上使用することができ、単一の行の数の両方を取得するために

0
$(foreach ($line in [IO.File]::ReadAllLines(".\test.txt")) { 
    $line.Substring($line.Length - 1) 
}) | Group 
1
$lastchar = @{};get-content $file |% {$lastchar[$_[-1]]++};$lastchar 
2
Get-Content test.txt | Where-Object {$_ -match '[YN]$'} | Group-Object {$_[-1]} -NoElement 
関連する問題