查找特定行的匹配项

时间:2014-12-02 20:25:08

标签: regex powershell match

我正在寻找一种在多个文件中找到特定行匹配的方法,例如:

FILE1.TXT:

abcd.123
efgh.456

FILE2.TXT:

ijkl.789
mnop.001

如果它包含.(句点),我想在每个文件中返回第2行的所有结果。

到目前为止,我已尝试过这个cmd:

Get-Content *.ini | where-object {"$_" -match '.\\..='}

将返回包含.

的任何文件的文件名

我想要的是返回第2行有.的任何文件的文件名。

1 个答案:

答案 0 :(得分:2)

你可以这样做:

Get-ChildItem *.ini | ? {
  (Get-Content $_.FullName)[1] -like '*.*'
}

由于Get-Content返回一行数组,索引1将从给定文件中选择第二行。此外,您应该使用模式匹配(运算符-like)而不是正则表达式来进行此检查,因为它符合要求并提供更好的性能。