我正在寻找一种仅在上一行包含特定短语的情况下通过Powershell从文本文件中删除行的方法
对于Powershell来说是非常新的东西,所以还没有尝试很多东西。 我已经到了可以删除有问题的行的地步,但是无法弄清楚如果上面的行中有特定的短语,如何从删除中保存行
$data = foreach($line in get-content C:\e.g\test.txt){
if($line -like "*Example*"){
}
else{
$line
}
}
$data |set-content C:\e.g\test.txt -force
这会删除我需要删除的行,但也会删除我需要保存的行。
$data = foreach($line in get-content C:\e.g\test.txt){
if($line -like "*Example*" -and previous line -like "*Phrase"*){
}
else{
$line
}
}
$data |set-content C:\e.g\test.txt -force
正在寻找类似上面的内容来指定上一行内容
感谢任何人对此提供的帮助/解决方案。
答案 0 :(得分:0)
您可以使用以下内容:
$previous = $null
$data = foreach ($line in Get-Content C:\e.g\test.txt) {
if ($line -notlike "*Example*" -or $previous -notlike "*Phrase*") {
$line
}
$previous = $line
}
$data | Set-Content C:\e.g\test.txt -force
如果满足以上条件之一,则不会删除该行。因此,-or
之间的两个条件都必须为假,然后才忽略该行。