首页 > 解决方案 > 如何从 powershell 中的文本文件中删除一行?

问题描述

突然间,我有一种终于进入 powershell 的冲动。现在我有办法导入文本文件、创建文本文件并添加到文件中,但是有没有办法从文件中删除元素?例如,如果我有一个文本文件:

测试.txt

Quick
Brown
Fox

我可以使用 $textFile = Get-Content -Path ".\test.txt" 导入文件

我可以打印每个元素并将它们添加到一个新文件中

foreach($line in $textFile)
{
    Write-Host $line
    Add-Content -Path ".\output.txt" -Value $line
}

但是如何从test.txt文件中删除或删除元素(一行)?我用谷歌搜索了一个解决方案,但我只得到了某人想要删除空白行删除整个文件如何在 C# 中执行此操作的条件的结果。我认为它会像以前的命令一样直观..

感谢您的反馈!

标签: powershell

解决方案


这个线程为例,它通过保留不包含特定内容的行来删除行。

您可以通过保留不想删除的行来做同样的事情。

Get-Content .\text.txt | Where-Object {$_ -notmatch 'the-word-in-specific-line'} | Set-Content out.txt

因此,如果要删除包含字符串的行Brown

Get-Content .\test.txt | Where-Object {$_ -notmatch 'Brown'} | Set-Content out.txt

推荐阅读