Buscar una cadena en varios archivos y devolver el nombre de los archivos en PowerShell
-
Use el cmdlet
Get-ChildItemySelect-Stringpara buscar una cadena en varios archivos y devolver el nombre de los archivos en PowerShell -
Use
lsyslspara buscar una cadena en varios archivos y devolver el nombre de los archivos en PowerShell
Puede ver los archivos presentes en un directorio específico usando PowerShell. También le permite buscar archivos recursivamente para encontrar los archivos presentes en los subdirectorios.
Pero, ¿es posible buscar una cadena en archivos y obtener los nombres de esos archivos en PowerShell? La respuesta es sí. Este tutorial le enseñará a buscar una cadena en varios archivos y devolver el nombre de los archivos en PowerShell.
Use el cmdlet Get-ChildItem y Select-String para buscar una cadena en varios archivos y devolver el nombre de los archivos en PowerShell
El cmdlet Get-ChildItem muestra una lista de archivos y directorios presentes en la ubicación específica. El parámetro -Recurse ayuda a enumerar todos los archivos, directorios o subdirectorios de forma recursiva. Pero no muestra directorios vacíos en la salida.
El cmdlet Select-String busca y encuentra patrones de cadenas en los archivos.
El siguiente comando buscará una cadena system en todos los archivos en el directorio C:\pc y enumera la ruta completa de un archivo.
Get-ChildItem -Path C:\New -Recurse | Select-String -Pattern 'system' -List | Select Path
Producción :
Path
----
C:\New\literature_review.pdf
C:\New\Proposal.pdf
C:\New\Draft.pdf
C:\New\Report.docx
C:\New\fyp\Forms.docx
También puede mostrar la línea que contiene la cadena si incluye Line en el comando.
Get-ChildItem -Path C:\New -Recurse | Select-String "system" -List | Select Path,Line
Use ls y sls para buscar una cadena en varios archivos y devolver el nombre de los archivos en PowerShell
El comando ls es popular para listar archivos y directorios en sistemas operativos Unix y similares a Unix. El comando ls también está disponible en PowerShell y funciona de manera similar.
Si no se especifica la ruta, enumera los archivos y directorios presentes en el directorio de trabajo. Con la opción -r, ls enumera los archivos y directorios de forma recursiva.
ls C:\pc
Producción :
Directory: C:\pc
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 1/2/2022 2:53 PM computing
d----- 1/2/2022 1:24 PM New folder
-a---- 1/2/2022 1:36 PM 17384 hello
-a---- 1/2/2022 2:48 PM 5134 matrix.c
-a---- 12/26/2020 7:03 PM 321 ReadMe.txt
El sls es un alias para el cmdlet Select-String. También busca un patrón de cadena en los archivos.
Puede usar el siguiente comando para buscar una cadena en varios archivos y obtener el nombre de los archivos en PowerShell.
ls -r -Path C:\pc | sls 'hello' | select -u Path
Producción :
Path
----
C:\pc\computing\task3\crack
C:\pc\computing\task3\crack1
C:\pc\computing\task3\crack2
C:\pc\computing\task3\cracked
C:\pc\computing\task3\pass
C:\pc\computing\task3\password.txt
C:\pc\computing\task3\pwd
C:\pc\computing\task4\hello
Artículo relacionado - PowerShell String
- Cómo encontrar la posición de una subcadena en PowerShell
- Cómo reemplazar un texto en un archivo usando PowerShell
- Cómo verificar si una cadena no es NULL o VACÍA en PowerShell
- Comprobar si la cadena está vacía en PowerShell
- Cómo convertir una cadena segura a texto sin formato en PowerShell
- Cómo eliminar espacios de una variable usando PowerShell
