所以我需要删除多个txt文件中的几个txt块。文件如下所示:
Header
Value
Data
<DefaultValue>
sdf
asdfsdf
asfkfkf
</DefaultValue>
Data3
Data2
<DefaultValue>
sdfdffff
asdfsasdfddf
asfkf
</DefaultValue>**
Dat
End
我需要删除以 DefaultValue 开头并以 / DefaultValue
结尾的行块结果应如下所示:
Header
Value
Data
Data3
Data2
Dat
End
不幸的是,它不是一个正确形成的XML文件,因此无法删除XML节点。
有什么建议吗?
答案 0 :(得分:2)
我用它来解决添加第三方Join-String函数的需要:
$filePath = '.\Desktop\new 3.txt'
$text = ""
Get-Content $filePath | % {$text += $_ + "NEWLINE"}
$text = $text -Replace "<Default.+?DefaultValue>",""
$text.Replace("NEWLINE","`r`n")
屈服:
Header
Value
Data
Data3
Data2
**
Dat
End
为了重复这一点,你需要做这样的事情:
Get-ChildItem -Path C:\logs\ -Filter "*.txt" | % {
$text = ""
Get-Content $_.FullName | % {$text += $_ + "NEWLINE"}
$text = $text -Replace "<Default*DefaultValue>",""
$text.Replace("NEWLINE","`r`n") | Out-File $_.FullName -Force
}
祝你好运,备份你的数据,并回来查看来自其他用户的更优雅的答案。