Ricerca e sostituzione del testo

PowerShell:
Ricerca e sostituzione del testo

How to:

Esempio semplice per cercare e sostituire una parola in una stringa:

$text = "Ciao Mondo! Programmiamo con PowerShell."
$newText = $text -replace 'Mondo', 'Tutti'
$newText

Output:

Ciao Tutti! Programmiamo con PowerShell.

Per sostituire più pattern utilizzando regex:

$text = "Le mele costano $3 al chilo, mentre le arance $2."
$text -replace '\$(\d+)', '€$1'

Output:

Le mele costano €3 al chilo, mentre le arance €2.

Deep Dive

Il concetto di ricerca e sostituzione ha radici nella lavorazione di testi, con antenati meccanici come la macchina da scrivere. In informatica, un’implementazione iniziale fu l’editor di testo ed, presente nei primi sistemi Unix.

Alternative in PowerShell includono l’utilizzo di cmdlet come Select-String per la ricerca e l’uso combinato di Get-Content e Set-Content per la sostituzione in file. PowerShell, essendo basato sul framework .NET, permette anche l’uso di classi .NET come System.Text.RegularExpressions.Regex per gestire ricerca e sostituzione avanzate.

Dettagli implementativi importanti in PowerShell:

  • -replace usa regex di default, quindi è potente ma bisogna stare attenti a caratteri speciali.
  • Le stringhe sostituite non vengono modificate in-place; si crea una nuova stringa.
  • Utilizzare parentesi tonde per catturare gruppi in regex e $1, $2, ecc., per riferirsi a questi gruppi nella stringa sostitutiva.

See Also