Comment grep Rechercher du texte à partir de PowerShell

0
137

grep est un puissant utilitaire de recherche de texte sous Linux, mais il n'est pas disponible sous Windows. Bien qu'il existe des ports et des solutions tiers, PowerShell propose des équivalents intégrés à grep qui feront le même travail dans vos scripts.

Utilisation de findstr pour grep Rechercher dans PowerShell

Il existe deux utilitaires de recherche différents dans PowerShell, chacun avec ses propres forces. Le plus simple est findstr, qui est un exécutable Windows natif. Cela fonctionne bien pour remplacer grep pour les opérations de recherche simples sur la ligne de commande. Par exemple, vous pouvez rediriger la sortie de ls pour trouver des correspondances.

ls | findstr “foo”

Vous pouvez également rechercher plusieurs mots à la fois, utiliser des caractères génériques pour faire correspondre n'importe quoi, et utilisez l'indicateur /R pour transmettre des expressions régulières de base.

ls | findstr /R ba[a-z].txt

Cependant, si vous souhaitez rechercher explicitement en incluant un espace, vous devrez utiliser l'indicateur /C : :

ls | findstr /C:”foo”

Si vous êtes habitué à la ligne de commande Linux et que vous ne voulez pas vous souvenir d'une nouvelle commande, vous pouvez configurer “grep” être un alias pour findstr, ce qui vous permettra de conserver votre mémoire musculaire.

new-alias grep findstr

Utilisation de Select-String pour grep Search dans PowerShell

L'autre méthode native proposée par PowerShell est l'applet de commande Select-String, qui fait en grande partie les mêmes choses que findstr, mais est une applet de commande PowerShell au lieu d'un exécutable Windows.

Cela signifie qu'elle fonctionnera mieux dans PowerShell scripts, et renvoie notamment sa sortie en tant qu'objet, qui peut être joliment imprimé par PowerShell. Il est également plus facile à utiliser sur la ligne de commande, car la complétion des onglets de PowerShell fonctionnera avec.

Il fonctionne comme findstr et peut également accepter des caractères génériques et des expressions régulières.

ls | imbéciles Select-String | Select-String -Pattern <regexPattern>

Vous pouvez utiliser Select-String pour grep du texte dans des fichiers, en lui transmettant un argument -Path. Vous pouvez également l'utiliser avec des entrées transmises par d'autres cmdlets comme Get-Content.

Select-String -Path “.foo.txt” -Pattern ba.*

Si vous souhaitez l'utiliser en ligne de commande, vous pouvez également l'associer à “grep” pour un accès rapide.

remove-alias grep new-alias grep Select-String LIRE SUIVANT

  • › N'achetez pas de répéteur Wi-Fi : achetez plutôt celui-ci
  • › 10 fonctionnalités YouTube que vous devriez utiliser
  • › Devriez-vous augmenter la puissance de transmission de votre routeur Wi-Fi ?
  • › Un aimant peut-il vraiment endommager mon téléphone ou mon ordinateur ?
  • › Quels accessoires pour smartphone valent la peine d'être achetés ?
  • › Test de l'Edifier Neobuds S : le bon, le mauvais et le buggy