¿Qué ficheros dentro de este directorio y descendientes contienen una cadena específica?
gci -recurse *.php |sls button |select -first 10
¿Qué ficheros dentro de este directorio y descendientes contienen una cadena específica?
gci -recurse *.php |sls button |select -first 10
Después de probar un par de palabras en el Wordle de ayer (en versión tildes), y no dar con la palabra correcta, me decidí a tener algo de "ayuda" (la palabra "trampas" es muy fea) a partir de un diccionario.
Dado que tengo un fichero que es un listado de palabras en español, con una palabra por línea, me gustaría aplicar un filtro que me busque las palabras que cumplen determinadas condiciones, como tener una "P" en primera posición, contener una "L" (sin especificar la posición) y que tengan una determinada longitud.
Esto me dará varias opciones (en el mejor de los casos, puede que sólo haya una palabra que cumpla esas condiciones, en cuyo caso esa sería la palabra buscada), y mi idea era jugar alguna de esas palabras. Por eso decía lo de "ayuda" en vez de "trampas", pero vamos, puede llamarse de cualquiera de las dos formas. Lo importante aquí es cómo se hace eso en Powershell.
Mi fichero con la lista de palabras en español se llama words.es.txt.
Wordle con tildes: https://wordle.danielfrg.com/tildes/
Después de probar PLÁTANO, las letras acertadas están en las posiciones 0 (P) y 2 (L).
Otras letras acertadas, aunque estarán en otras posiciones, son la A y la O.
Lo interesante aquí es fijarse en el filtro para poner condiciones, que se pone con el comando "Where-Object" seguido de una expresión entre {llaves}, aunque tiene un alias que me gusta, y es "?".
Así pues, la línea de comando powershell para listar las palabras que cumplen esas condiciones quedaría así:
gc words.es.txt |?{($_.length -eq 8) -and ($_[0] -eq 'p') -and ($_[2] -eq 'l')}|sls a |sls o
Curiosamente, he de filtrar por palabras de longitud 8, ya que palabras con letras especiales (eñes, tildes...) se convierten en dos letras, por ejemplo, "peldaño" y "policía" dan "peldaño" y "policÃa", convirtiendo palabras de 7 letras en 8.
Esto debe ser por tema de codificación diferente entre cmd.exe y powerhsell. Pero eso lo investigaré en otra ocasión.
Ejecutar en la línea de comandos de Powershell:
tasklist /m msvcrt.dll
Una cosa interesante es que se puede pedir la salida en formato CSV, TABLE y LIST.
tasklist /m msvcrt.dll /fo csv > procesos.csv