TUTOS.EU

Isoler des mots dans des lignes en powershell

Extraire des données dans des lignes en powershell

On a ici un tableau avec 4 lignes.
Le but est d'isolé des données dans ces lignes.
On recherche ce qu'il y a après data-host=@
et le mot doit s'arrêter avant le prochain @

Pour cela le script utilise la fonction indexof pour recherche le mot clé.
Si on le trouve, on recherche la position du prochain @
et on isole ce qu'il y a entre les 2

Clear-Host

$MotCle = "data-host=@"

$MonTableau = @()

$MonTableau += "Ligne 1 Du texte"
$MonTableau += "Ligne 2 data-host=@Robert@ et la campagne"
$MonTableau += "Ligne 3"
$MonTableau += "Ligne 4 data-host=@Loda@ et la bougie"

foreach ($UneLigne in $MonTableau){
	Write-Host $UneLigne
}

Write-host ""

foreach ($UneLigne in $MonTableau){
    $Position1 = $UneLigne.indexof($MotCle)
    if ($Position1 -gt 0) { #Si le mot clé à été trouvé
        Write-host "Position 1 (avant la prise en compte de la longueur du mot clé) : $($Position1)"
        #On récupère la position du caractère situé juste après le mot clé
        Write-host "Longueur mot clé : $($MotCle.Length)"
        $Position1 = $($Position1+$MotCle.Length)
        Write-host "Position 1 : $($Position1)"
        $Position2 = $UneLigne.indexof("@",$($Position1))
        Write-host "Position 2 : $($Position2)"
        Write-host "Position 3 : $($Position2-$Position1)"
		$MyLine =  $UneLigne.substring($Position1,$($Position2-$Position1))
		Write-host "Mot isolé : $MyLine"
    }

}
Lien vers le fichier : cliquez ici

Résultat de ce code