Auteur de questions
equivalent grep -A

Question
-
Bonjour
Je cherche à extraire des occurrences dans un fichier avec la ligne qui suit cette occurrence.
en fait je cherche à reproduire équivalent de : grep -A1 "occurence" fichier
Soit fichier:
rf
rf
r
toto 2701
monsieur
titi 2701
madamegrep -A1 2701 fichier
toto 2701
monsieur
titi 2701
madame
Comment puis-je reproduire cette commande en powershell ?
Merci d'avance pour vos lumières !
Toutes les réponses
-
bonjour edboq
la commande équivalente est Select-String
Ci-dessous un exemple. J'ai fait un fichier texte qui contient ce que tu as collé. Et maintenant, je vais te montrer ce qu'on peut faire ... enfin quelques usages.
$Myfile = "C:\temp2\MyFile.txt" $MyPattern = "2701" $results = Select-String -Path $Myfile -Pattern $MyPattern #Ne pas oublier qu'on manipule des objets avec des propriétés
# Si je veux connaitre le nombre d'occurence, je vais demander la propriété count de l'objet retourné.
$NbreOccurences = $result.Count # Comment connaitre toutes les propriétés de cet objet $results ? $results | Get-Member # tiens, des propriétés intéressantes Line et linenumber
# voyons ce qu'on peut en faire foreach ($result in $results) { $result.Line $result.LineNumber Write-Host "$MyPattern a été trouvé en ligne : $($result.Linenumber)" Write-host " Le contenu complet de la ligne est le suivant : $($result.line)" }
Maintenant tu as quelques bases, plus d'info Get-Help Select-String -full :-) ou sur le Net.
On peut sans peine imaginer chercher dans toute une arborescence de fichiers ceux qui contiennent une pattern particulière.
A noter qu'il y a également d'autres paramètres qu'on peut passer et que -Pattern peut être une expression régulière (Regex).
cordialement
Olivier
-
-
-
pour cibler ta lecture : https://communary.net/2014/11/10/grep-the-powershell-way/
c'est quand même plus sympa de partager l'info que de balancer des liens.
Donc pour ta demande ce sera : select-string 2701 -Context 0,1
- Modifié alcofribas33 jeudi 10 septembre 2020 06:16
-