【发布时间】:2014-10-31 19:10:19
【问题描述】:
如何获取空行之前的行数。例如:
这是一段 这是一段 这是一段 这是一段 这是一段 这是一段 这是一段第一组应计为 3 行,第二组应计为 4 行。
我使用了Get-Content .\testing.txt | Measure-Object -line,它返回总行数,但这不是我想要的。
【问题讨论】:
标签: powershell-3.0 powershell-ise
如何获取空行之前的行数。例如:
这是一段 这是一段 这是一段 这是一段 这是一段 这是一段 这是一段第一组应计为 3 行,第二组应计为 4 行。
我使用了Get-Content .\testing.txt | Measure-Object -line,它返回总行数,但这不是我想要的。
【问题讨论】:
标签: powershell-3.0 powershell-ise
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 ;
}
【讨论】:
这将逐步遍历文件的行以查找第一个空白。
$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
【讨论】: