我正在使用Powershell在数千个HTML文件中搜索包含空
标记的文件。这些标签可能会出现在文件中,在开始/结束标签之间没有空格,空白或换行符。例如,它们可能看起来像以下任何一个
<代码> <标题>
到目前为止,我有以下代码
Get-ChildItem locationPath * .htm -Recurse |
选择字符串模式' [\ s] * '|
组路径|
选择名字
这可以为我提供与前两个示例匹配的所有文件的列表。但是,我正在努力寻找一种方法来匹配第三个示例,其中第三个示例具有换行符和未知数量的空格。任何帮助将不胜感激。
答案 0 :(得分:1)
Select-String
逐行处理输入,因此不会捕获您的第三个示例。尝试执行以下操作以将输入作为单个字符串获取:
Get-ChildItem -Filter '*.htm' -Recurse | Where-Object {
(Get-Content $_.FullName -Raw) -match '<title>\s*</title>'
} | Select-Object -Expand FullName
在PowerShell v3之前,您需要用Get-Content -Raw
替换Get-Content | Out-String
,因为参数-Raw
是v3引入的。