PowerShell : remplacer le premier caractère d’une chaîne
I. Présentation
Dans ce tutoriel, nous allons voir ensemble quelque chose de simple, mais de très pratique : comment remplacer le premier caractère d'une chaîne dans un script PowerShell ? Il peut y avoir de nombreuses raisons d'avoir besoin de réaliser cette opération dans un script lorsque l'on manipule des valeurs. Voyons comment faire à l'aide de -replace.
II. Remplacer le premier caractère avec -replace
La méthode -replace disponible avec PowerShell est très pratique, car elle permet de remplacer une chaîne par une autre. Puisqu'il est compatible avec les expressions régulières, appelées également regex, nous allons pouvoir remplacer facilement le premier caractère au sein d'une chaîne (string). La syntaxe de -replace est la suivante :
$Texte -replace "<chaine à remplacer>","<chaine de remplacement>"
Prenons la variable $Texte, comme ceci :
$Texte = "PowerShell
L'objectif est donc de remplacer la lettre "P" puisqu'il s'agit du premier caractère de la chaîne donnée comme exemple. Nous allons remplacer cette première valeur par "PS1" (mais on peut mettre ce que l'on veut). Donc, on va remplacer "^." qui est la regex qui permet de cibler le premier caractère par la chaine de notre choix, ce qui donne :
$Texte -Replace "^.","PS1"
La valeur retournée sera : PS1owerShell
En fait, on pourrait aussi s'appuyer sur cette méthode pour supprimer le premier caractère de la chaîne, tout simplement en remplaçant le premier caractère par "rien" :
$Texte -Replace "^.",""
La chaîne retournée sera : owerShell
La preuve en image :
Maintenant, c'est à vous de jouer et d'intégrer cette méthode bien pratique dans votre script ?
Bonjour
Merci pour ce script, il serait intéressant d’avoir un petit récap sur l’utilisation du regex ? Avec des fonctions de recherche dans une liste par exemple ?
Bravo pour vos articles toujours très clairs
Bonjour,
Justement j’ai prévu un premier article sur les Regex pour la semaine qui arrive, une sorte d’introduction sur le sujet.
Qu’entends-tu par « Avec des fonctions de recherche dans une liste par exemple » ?
Cordialement,
Florian
Dans le fonction de recherche, l’idée serait d’utiliser les regex pour rechercher certains caractères dans une liste d’une fichier txt ou csv et de les extraire
Bonjour,
Je cherche à supprimer les espaces en fin de ligne (uniquement en fin de ligne) dans un fichier texte avec powershell, sachant que je ne connais pas à l’avance le nombre d’espaces existants pour chaque ligne.
Merci pour votre aide