在PowerShell中计算空白行之前的行#

时间:2014-10-31 19:10:19

标签: powershell-v3.0 powershell-ise

如何获得空白行之前的行数。例如:

This is a paragraph
This is a paragraph
This is a paragraph

This is a paragraph
This is a paragraph
This is a paragraph
This is a paragraph

第一组应计3行,第二组计4行。 我使用了Get-Content .\testing.txt | Measure-Object -line来返回行的总数,但这不是我想要的。

2 个答案:

答案 0 :(得分:3)

Get-Content返回一个数组,因此任何回车或换行都会丢失。假设没有空格,则以下返回3.相应地调整以修剪"空格"如果他们不被认为是人物。 $a = Get-Content .\testing.txt ; [array]::IndexOf($a,'')

编辑:以下循环内容并输出任何空白行之前的行数。空行或具有任意数量空格的行被视为空白。要将空格视为空行,请删除" .trimend"。

$a = Get-Content C:\powershell\tmp.txt ; $i = 0;
while( [array]::IndexOf($a.trimend(' '),'', $i) -gt 0)
{
    $j = [array]::IndexOf($a.trimend(' '),'', $i); $j - $i; $i = $j + 1 ;   
}  

答案 1 :(得分:1)

这将逐步通过文件行找到第一个空白。

$lines = Get-Content C:\Dev\PS\3.txt
for ($i = 0; $i -le $lines.Length; $i++) {
    if ($lines[$i].Length -eq 0) {
        break
    }
}
echo $i