Non c'è molta documentazione sui loop di PowerShell.
La documentazione sul loop in PowerShell è abbondante, e si potrebbe voler controllare i seguenti argomenti della Guida: about_For
, about_ForEach
, about_Do
, about_While
.
foreach($line in Get-Content .\file.txt) {
if($line -match $regex){
# Work here
}
}
Un'altra soluzione idiomatica di PowerShell al tuo problema è reindirizzare le righe del file di testo al ForEach-Object
cmdlet :
Get-Content .\file.txt | ForEach-Object {
if($_ -match $regex){
# Work here
}
}
Invece di eseguire la corrispondenza regex all'interno del ciclo, puoi collegare le linee Where-Object
per filtrare solo quelle che ti interessano:
Get-Content .\file.txt | Where-Object {$_ -match $regex} | ForEach-Object {
# Work here
}
Get-Content
carica l'intero file in memoria in una volta, cosa che non funzionerà o si bloccherà su file di grandi dimensioni.