regex - 如果不匹配正则表达式,则从文件中删除行

标签 regex powershell

对于目录中的每个文件,我希望使用 powershell 删除与正则表达式匹配的行(例如以 |B 开头)。

我想我可以通过目录上的 Get-ChildItem、foreach-object、get-content 和某种 if -match 来完成此操作,但我真的很难将它们组合在一起。

任何帮助将不胜感激。这是我第一次编写 powershell 脚本。

最佳答案

像下面这样的东西应该会让你走向正确的方向

$files = Get-ChildItem "C:\your\dir"

foreach ($file in $files) {
  $c = Get-Content $file.fullname | where { $_ -notmatch "^\|B" }
  $c | Set-Content $file.fullname
}

关于regex - 如果不匹配正则表达式,则从文件中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31474233/

相关文章:

Python、PowerShell 还是其他?

powershell - Remove-WebVirtualDirectory ...没有强制/静默选项?

python - 使用 Python 请求进行 Azure App Insights 身份验证

powershell - 如何获取我们可以为巧克力包或 cchoco dsc 资源传递的可用参数

java - 我需要帮助使正则表达式正确

javascript - 需要帮助正确转义正则表达式 javascript

php - 正则表达式获取冒号之前的所有数字

regex - 将字符串替换为 R 中的数字函数

c++ - 在C/C++中编写正则表达式时如何避免反斜杠转义

powershell - 包含员工 ID 和经理的 AzureAD 完整花名册报告