Buscar una cadena en varios archivos y devolver el nombre de los archivos en PowerShell

Rohan Timalsina 3 abril 2022
  1. Use el cmdlet Get-ChildItem y Select-String para buscar una cadena en varios archivos y devolver el nombre de los archivos en PowerShell
  2. Use ls y sls para buscar una cadena en varios archivos y devolver el nombre de los archivos en PowerShell
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
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Artículo relacionado - PowerShell String