【问题标题】:Remove lines from file if do not match regular expression如果不匹配正则表达式,则从文件中删除行
【发布时间】:2015-07-17 10:56:58
【问题描述】:

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

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

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

【问题讨论】:

标签: regex powershell


【解决方案1】:

像下面这样的东西应该会让你朝着正确的方向前进

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

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

【讨论】:

  • 太棒了,这正是我所追求的。
猜你喜欢
  • 1970-01-01
  • 2011-07-08
  • 1970-01-01
  • 2022-12-11
  • 2013-10-04
  • 1970-01-01
  • 1970-01-01
  • 2017-11-10
  • 1970-01-01
相关资源
最近更新 更多