none
equivalent grep -A RRS feed

  • 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
    madame

    grep -A1 2701 fichier

    toto 2701
    monsieur
    titi 2701
    madame

    Comment puis-je reproduire cette commande en powershell ?

    Merci d'avance pour vos lumières !

    jeudi 3 septembre 2020 14:20

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

    jeudi 3 septembre 2020 14:58
  • Bonjour

    Merci pour votre retour rapide mais cela ne répond pas à ma question !

    Votre script me retourne la ligne ou l’occurrence est trouvée mais pas la ligne suivante

    Je ne cherche pas un script mais une commande (aussi élégante que possible) :-)
    vendredi 4 septembre 2020 06:05
  • 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


    mercredi 9 septembre 2020 15:26
  • bonsoir

    Merci pour ce retour qui pourra servir à d'autres personnes.

    cordialement

    Olivier

    mercredi 9 septembre 2020 16:56