我有一个需要在PowerShell中阅读的文本文件。
每行中的最后一个字符是Y或N.
我需要浏览文件并输出有多少Y和N.
有什么想法吗?
答案 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