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 searchEn 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
TXTarchivos 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"