Как использовать PowerShell / RegEx, чтобы найти все HTML-файлы с пустым тегом <title>? - PullRequest
0 голосов
/ 04 декабря 2018

Я использую Powershell для поиска в тысячах файлов HTML файлов, содержащих пустые теги <title>.Эти теги могут появляться в файлах без пробелов, пробелов или разрывов строк между открывающими / закрывающими тегами.Например, они могут выглядеть следующим образом:

<title></title>
<title>  </title>
<title>
</title>

Пока у меня есть следующий код

Get-ChildItem locationPath *.htm -Recurse |
    Select-String -pattern '<title>[\s]*</title>' |
    group path |
    select name

Это работает, чтобы предоставить мне списоквсе файлы, которые соответствуют первым двум примерам.Однако я изо всех сил пытаюсь найти способ соответствовать третьему примеру, в котором у него есть разрыв строки и неизвестное количество пробелов.Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 04 декабря 2018

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...