Búsqueda de sitios web

Grep en PowerShell usando el cmdlet Select-String


En Linux/Unix, el comando grep se usa para encontrar un texto (cadena) o errores en un archivo de registro. Grep le permite buscar/seleccionar cualquier dato en la salida de otro comando:

command | grep search

En PowerShell, puede usar el cmdlet Select-String para buscar una cadena de texto en un archivo.

Por ejemplo, el siguiente comando muestra todas las líneas que contienen ERROR en un archivo de texto o salida estándar:

Select-String -Path c:\tmp\makeapp_sxtracesxs.txt -Pattern "ERROR"

El comando ha mostrado el número de líneas que contienen el texto que está buscando y sus valores.

Si desea buscar una cadena en todos

TXT

archivos en un directorio específico, ejecute el siguiente comando:

Select-String -Path c:\tmp\*.txt -Pattern "ERROR"

Puede utilizar este comando si desea buscar en todos los archivos de una carpeta. Por ejemplo, este comando puede ser útil para buscar registros de seguimiento de mensajes y transporte (SMTP) en Exchange Server.

Usando las opciones Excluir e Incluir, puede incluir o excluir ciertos archivos para la búsqueda. El siguiente comando buscará en todos los archivos TXT y LOG que no contengan copiar en sus nombres:

$path = "c:\tmp\*"
Select-String -Path $path -Pattern "ERROR" -Include "*.txt","*.log" -Exclude "*copy*"

El ejemplo anterior busca un texto solo en el directorio especificado. Para buscar archivos en los directorios anidados de forma recursiva, use el cmdlet Get-ChildItem:

Get-ChildItem -Path 'c:\tmp\' -Recurse -include "*.mp3","*.avi" -ErrorAction SilentlyContinue | Select-String -SimpleMatch "ERROR","WARNING"

Artículos relacionados