Estoy buscando el equivalente de PowerShell grep --file=filename
. Si no sabesgrep
, el nombre de archivo es un archivo de texto donde cada línea tiene un patrón de expresión regular que desea hacer coincidir.
Tal vez me estoy perdiendo algo obvio, pero Select-String
no parece tener esta opción.
powershell
grep
Fordio
fuente
fuente
fuente
findstr
funciona más comogrep
en Linux.Select-String
es ideal para trabajar con objetos, pero a veces solo quieres unir cadenas.findstr
no es nativo de PowerShell, sino símbolo del sistema.No estoy familiarizado con grep, pero con Select-String puedes hacer:
También puede hacerlo con Get-Content:
fuente
dir *.cs -Recurse | sls "TODO" | select -Unique "Path"
. Gracias por el excelente puntero.Así que encontré una respuesta bastante buena en este enlace: https://www.thomasmaurer.ch/2011/03/powershell-search-for-string-or-grep-for-powershell/
Pero esencialmente es:
Esto proporciona una búsqueda de archivos de directorio (* o simplemente puede especificar un archivo) y una búsqueda de contenido de archivos, todo en una línea de PowerShell, muy similar a grep. La salida será similar a:
fuente
Esta pregunta ya tiene una respuesta, pero solo quiero agregar que en Windows existe el Subsistema de Windows para Linux WSL .
Entonces, por ejemplo, si desea verificar si tiene un servicio llamado Elasicsearch que está en ejecución , puede hacer algo como el fragmento a continuación en PowerShell
net start | grep Elasticsearch
fuente
Tuve el mismo problema al tratar de encontrar texto en archivos con powershell. Usé lo siguiente: permanecer lo más cerca posible del entorno Linux.
Esperemos que esto ayude a alguien:
Potencia Shell:
Explicación:
Sí, esto también funciona:
fuente
Correcto. PowerShell no es un clon del conjunto de herramientas de * nix shells.
Sin embargo, no es difícil construir algo así:
fuente
Select-String -Pattern somestring
está mucho más limpio¿Tal vez?
fuente