Rechercher une chaîne dans plusieurs fichiers et renvoyer le nom des fichiers dans PowerShell

Rohan Timalsina 30 janvier 2023
  1. Utilisez les cmdlets Get-ChildItem et Select-String pour rechercher une chaîne dans plusieurs fichiers et renvoyer le nom des fichiers dans PowerShell
  2. Utilisez ls et sls pour rechercher une chaîne dans plusieurs fichiers et renvoyer le nom des fichiers dans PowerShell
Rechercher une chaîne dans plusieurs fichiers et renvoyer le nom des fichiers dans PowerShell

Vous pouvez afficher les fichiers présents dans un répertoire spécifique à l’aide de PowerShell. Il permet également de rechercher des fichiers de manière récursive pour retrouver les fichiers présents dans les sous-répertoires.

Mais est-il possible de rechercher une chaîne dans des fichiers et d’obtenir les noms de ces fichiers dans PowerShell ? La réponse est oui. Ce didacticiel vous apprendra à rechercher une chaîne dans plusieurs fichiers et à renvoyer le nom des fichiers dans PowerShell.

Utilisez les cmdlets Get-ChildItem et Select-String pour rechercher une chaîne dans plusieurs fichiers et renvoyer le nom des fichiers dans PowerShell

la cmdlet Get-ChildItem affiche une liste des fichiers et des répertoires présents à l’emplacement spécifique. Le paramètre -Recurse permet de lister récursivement tous les fichiers, répertoires ou sous-répertoires. Mais il n’affiche pas les répertoires vides dans la sortie.

la cmdlet Select-String recherche et trouve des modèles de chaîne dans les fichiers.

La commande suivante recherchera une chaîne system dans tous les fichiers du répertoire C:\pc et répertoriera le chemin complet d’un fichier.

Get-ChildItem -Path C:\New -Recurse | Select-String -Pattern 'system' -List | Select Path

Production :

Path
----
C:\New\literature_review.pdf
C:\New\Proposal.pdf
C:\New\Draft.pdf
C:\New\Report.docx
C:\New\fyp\Forms.docx

Vous pouvez également afficher la ligne contenant la chaîne si vous incluez Line dans la commande.

Get-ChildItem -Path C:\New -Recurse | Select-String "system" -List | Select Path,Line

Utilisez ls et sls pour rechercher une chaîne dans plusieurs fichiers et renvoyer le nom des fichiers dans PowerShell

La commande ls est populaire pour répertorier les fichiers et les répertoires dans les systèmes d’exploitation Unix et de type Unix. La commande ls est également disponible dans le PowerShell et fonctionne de manière similaire.

Si le chemin n’est pas spécifié, il liste les fichiers et répertoires présents dans le répertoire de travail. Avec l’option -r, ls liste les fichiers et répertoires de manière récursive.

ls C:\pc

Production :

    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

Le sls est un alias pour la cmdlet Select-String. Il recherche également un modèle de chaîne dans les fichiers.

Vous pouvez utiliser la commande ci-dessous pour rechercher une chaîne dans plusieurs fichiers et obtenir le nom des fichiers dans PowerShell.

ls -r -Path C:\pc | sls 'hello' | select -u Path

Production :

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

Article connexe - PowerShell String