Tramite il comando
Select-String, di
PowerShell, è possibile cercare all'interno delle righe di un file di log in formato testo una o più occorrenze di una determinata stringa.
Il comando per cercare una stringa semplice e questo:
Get-Content D:\SharePoint\LOGS\IIS\W3SVC14736843\u_ex131125.log | Select-String -Pattern "SGART\user1" -AllMatches -SimpleMatch
senza lo switch
-AllMatches ritorna solo la prima occorrenza.
E' anche possibile eseguire una ricerca tramite una
regular expression. Per far questo rimuovere lo switch
SimpleMatch ed includere l'espressione di ricerca:
Get-Content D:\SharePoint\LOGS\IIS\W3SVC14736843\u_ex131125.log | Select-String -Pattern "SGART\\user[0-9]+"" -AllMatches
in questo caso cerco tutti gli utenti del dominio SGART che iniziano con
user seguito da 1 o più numeri (es. SGART\user1, SGART\user456, ecc...).
Vedi anche
Regular Expression Search.
Infine è possibile salvare il risultato della ricerca su un file:
Get-Content D:\SharePoint\LOGS\IIS\W3SVC14736843\u_ex131125.log | Select-String -Pattern "SGART\\user[0-9]+"" -AllMatches | Set-Content $pwd\prova.txt
La variabile $pwd rappresenta il percorso corrente.
Ci sono anche altri switch a disposizione come
-CaseSensitive oppure
-NotMatch per cercare tutte le righe che non corrispondono al pattern.