powershell - 如何从 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# 中执行此操作的条件的结果。我认为它会像以前的命令一样直观..
感谢您的反馈!
解决方案
以这个线程为例,它通过保留不包含特定内容的行来删除行。
您可以通过保留不想删除的行来做同样的事情。
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
推荐阅读
- highcharts - Highcharts 自定义图案填充显示不同的笔画宽度
- angular - 使用 ApplicationInsights-js 开玩笑地测试 Angular 应用程序时出现“ReferenceError:未定义定义”
- asp.net - ASP 用户控件:无法从循环内传递参数
- ruby-on-rails - Rails - 一对一关联
- bash - 如何检测 Git 存储库工作树中的合并冲突(非裸)
- java - SignalR 调用已取消
- android - 调用 webview.reload 方法后恢复 webview 状态。可能吗?
- heroku - 如何找到 Heroku 应用程序的本地目录?
- c# - 为什么我的程序在调用“OpenAsync()”时会终止?
- sorting - SSRS 在 Tablix SSRS 中对列中的数据进行排序