【发布时间】:2017-04-09 04:54:00
【问题描述】:
我必须在一个相当大的文件中找到所有内容超过 4 个的行 ;
例如这个文件
Text1;Text2;Text3;Text4;Text5;
Text1;Text2;Text3;Text4;Text5;
Text1;Text2;Text3;Text4;Text5;
Text1;Text2;Text3;Text4;Text5;
Text1;Text2;Text3
Text1;Text2;Text3;Text4;Text5;
Text1;Text2;Text3
Text1;Text2;Text3;Text4;Text5;
数行数没问题
$content=Get-Content .\sample.txt
[regex]::matches($content,";").count
给了我 34 次点击。
计算每行所需的字符也没问题
$content=Get-Content .\sample.txt
foreach ($lines in $content) {[regex]::matches($lines,";").count}
给予
- 5
- 5
- 5
- 5
- 2
- 5
- 2
- 5
现在我想获得少于 4 条的所有行;
我试过了:
if (foreach ($lines in $content) {[regex]::matches($lines,";").count} -le 3) {Write-Host $lines}
但这给了我一个错误。
有了这个
$count=foreach ($lines in $content) {[regex]::matches($lines,";").count}
if ($count -le 3) {Write-Host $lines}
我得到了一条线 - 最后的匹配线,但没有另一条线。
foreach和if如何结合?
【问题讨论】:
-
Get-Content .\sample.txt | ? {[regex]::matches($_,";").count -le 3}
标签: powershell if-statement foreach