PowerShell: Cómo eliminar líneas que contienen una cadena específica
A menudo, es posible que desee utilizar PowerShell para eliminar todas las líneas de un archivo que contienen una cadena específica.
Puede utilizar la siguiente sintaxis para hacerlo:
Get-Content teams.txt | Where-Object { -not $_.Contains('West') }
Este ejemplo en particular elimina todas las líneas del archivo llamado teams.txt que contienen la cadena "Oeste" en cualquier parte de la línea.
Tenga en cuenta que también puede utilizar el cmdlet Set-Content para guardar estos cambios en un archivo nuevo:
Get-Content teams.txt | Where-Object { -not $_.Contains('West') } | Set-Content teams_new.txtEste ejemplo en particular guardará los cambios en un nuevo archivo llamado teams_new.txt.
El siguiente ejemplo muestra cómo utilizar esta sintaxis en la práctica.
Ejemplo: Cómo eliminar líneas que contienen una cadena específica en PowerShell
Supongamos que tenemos un archivo llamado teams.txt en nuestro directorio actual que contiene información sobre varios equipos de baloncesto.
Podemos usar el cmdlet Get-Content para ver el contenido de este archivo:
Ahora supongamos que queremos eliminar todas las líneas del archivo que contienen la cadena "Oeste" en cualquier parte de la línea.
Podemos utilizar la siguiente sintaxis para hacerlo:
Get-Content teams.txt | Where-Object { -not $_.Contains('West') }
La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:
Observe que esto elimina todas las líneas que contienen la cadena "Oeste" en cualquier parte de la línea.
Tenga en cuenta que también podríamos usar la siguiente sintaxis para guardar estos cambios en un nuevo archivo llamado teams_new.txt:
Get-Content teams.txt | Where-Object { -not $_.Contains('West') } | Set-Content teams_new.txt
La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:
Observe que cuando usamos el cmdlet Get-Content para ver el contenido del archivo llamado teams_new.txt podemos ver que contiene el mismo contenido que el archivo original con todos Se eliminaron las líneas que contienen 'Oeste'.


