grep в Powershell

Что mos легкий/удобный путь состоит в том, чтобы использовать встроенные функции Powershells для эмуляции grep как поведение?

В сценариях я использую что-то вроде этого

dir "*.filter" | foreach-object{
    $actfile = $_
    $readerrorfile = [System.IO.Path]::GetTempFileName()
    $found = $false
    $content = Get-Content $actfile 2> $readerrorfile
    $readerror = Get-Content $readerrorfile
    if($readerror -match "Error"){
        echo "Error while reading from file $actfile"
        echo $readerror
        del $readerrorfile
        Write-Host "stopping execution"
        exit
    }else{
        del $readerrorfile
        if($content -match "keyword|regex"){
            echo "found in $actfile"
            $found = true;
        }
    }
}

Я абсолютно уверенный существую более легкая/короче версия для этого, возможно, острота. Так, что лучший способ к нему grep путь?

5
задан 07.04.2011, 18:15

1 ответ

Я обычно делаю что-то как:

dir *.txt | select-string "keyword|regex"

Для файла соответствия это показывает мне название файла, номера строки и содержания строки. Это также благоприятно для конвейера. Я предлагаю, чтобы Вы взглянули на Избранную строку при помощи:

help Select-String -Detailed
14
ответ дан 07.12.2019, 16:49

Теги

Похожие вопросы