正则表达式替换文件的内容并删除不匹配的行

时间:2015-04-22 16:07:54

标签: regex powershell replace

我有一个大型日志文件,我想提取某些类型的行。我创建了一个匹配这些行的正则函数。我现在如何使用此正则表达式提取线条而不是其他内容?我试过了

Action

哪个几乎有效,但不感兴趣的线仍然是空行(意思是感兴趣的行间隔很远)。

2 个答案:

答案 0 :(得分:3)

最好的方法是完全删除else条款。如果这样做,那么将不会从ForEach-Object块的迭代返回任何对象。

cat .\file | %{ 
    if($_ -match "..."){
        $_ -replace "...", '...'
    }
}

答案 1 :(得分:1)

只是追加briantist's answer你甚至不需要循环结构。 -match-replace将用作数组运算符。无需ifForEach-Object

(Get-Content .\file) -match "..." -replace "...","..."

Get-Content是别名cat

的目标