使用 Powershell 从文本文件中剥离行

Ale*_*lex 5 powershell

我正在尝试从文本文件中删除特定行。文本文件只是一个列表,如果存在特定条目,我想删除它们。所以我所拥有的是:

$f=${path_to_file}
for($i = 0; $i -le $f.length; $i++)
{
    if ($f[$i] -eq "text_to_be_deleted")
    {
        $f[$i]=$null
    }
}
${path_to_file}=$f
Run Code Online (Sandbox Code Playgroud)

问题是这会从文本文件中删除所有回车符。我尝试了以下方法:

(type path_to_file) -notmatch "text_to_be_deleted" | out-file path_to_file
Run Code Online (Sandbox Code Playgroud)

该命令的问题在于我可能有一个字符串,例如“abc”、“abcd”或“abcde”。如果我在引号中有“abc”,它会删除任何包含“abc”的行,而不仅仅是完全匹配。我真的很讨厌正则表达式,所以我无法弄清楚如何准确地指定这个字符串。

关于如何做到这一点的任何建议?

小智 7

这可以通过单行来完成:

(type path_to_file) -notmatch "^text to be deleted$" | out-file path_to_file
Run Code Online (Sandbox Code Playgroud)

请注意,^意思是“行的开头”,$意思是行的结尾。