Как посчитать количество строк в PowerShell - PullRequest
8 голосов
/ 20 января 2012

У меня есть текстовый файл, который мне нужно прочитать в PowerShell.

Последний символ в каждой строке - это Y или N.

Мне нужно просмотреть файл и вывести, сколько Y и N там.

Есть идеи?

Ответы [ 6 ]

16 голосов
/ 20 января 2012

Предполагая файл с именем "test.txt" ... Чтобы получить количество строк, оканчивающихся на Y, вы можете сделать это:

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

И чтобы получить количество строк, оканчивающихся на N, вы можете сделать это:

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

Надеюсь, это поможет.

7 голосов
/ 20 января 2012

Чтобы получить оба значения в одной строке:

gc .\test.txt | %{ if($_ -match "Y$|N$"){ $matches[0]} } | group
2 голосов
/ 21 января 2012
Get-Content test.txt | Where-Object {$_ -match '[YN]$'} | Group-Object {$_[-1]} -NoElement
1 голос
/ 21 января 2012
$lastchar = @{};get-content $file |% {$lastchar[$_[-1]]++};$lastchar
0 голосов
/ 21 января 2012
$(foreach ($line in [IO.File]::ReadAllLines(".\test.txt")) { 
    $line.Substring($line.Length - 1)
}) | Group 
0 голосов
/ 20 января 2012

Мне нравится ответ @manojlds, поэтому я добавлю что-то похожее:

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

(операторы могут использоваться и с массивами).

Тогда вы можете использовать егокак это:

($grouped | ? {$_.Name -eq 'y'}).count
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...