如何在powershell中替换模式匹配的完整行?

时间:2016-03-10 19:56:53

标签: regex powershell

我是PowerShell的新手,所以错误可能很明显,但我的代码在下面。我正在尝试编写一个脚本来替换100.1,100.2,100.3,100.4子网上包含IP地址的所有行,并用一行表示" Ignore替换它们。当我的代码运行时,它只是将原始行写入新文件,然后多次将单词ignore打印到屏幕上。

foreach ($line in $sources) {
    if($line -notlike "100.1.*" -and $line -notlike "100.2.*" -and $line -notlike "100.3.*" -and $line -notlike "100.4.*"){
        $line.Replace( $line, "Ignore");
        $line >> $outputFile
    }
}

1 个答案:

答案 0 :(得分:1)

不要打扰替换。只需指定静态值。

foreach ($line in $sources) {
    if($line -notlike "100.1.*" -and $line -notlike "100.2.*" -and $line -notlike "100.3.*" -and $line -notlike "100.4.*") {
        "Ignore" >> $outputFile;
    } else {
        $line >> $outputFile;
    } 
}

我可能在这里有倒退的逻辑。您的描述和代码让我感到困惑。这与我写它的方式相反。