J'ai un fichier texte contenant de très longues lignes. J'ai besoin d'une seule information de chaque ligne et j'ai besoin de voir les valeurs uniques. Ma pensée originale était d'utiliser Select-String et de spécifier une expression régulière avec un groupe de capture. J'ai regardé plusieurs autres postes mais aucun n'a travaillé. Voici l'équivalent C # rapide et sale: Comment puis-je faire cela dans PowerShell? P> Mise à jour: strong> p> < p> Test des réponses, j'ai réalisé qu'il y a une exigence supplémentaire. Il peut y avoir plusieurs correspondances par ligne source. Exemple: p> Les résultats doivent être: p>
3 Réponses :
select-string -path <filepath> -pattern 'Path=\"(.*?)\"' -allmatches |
foreach-object {$_.matches} |
foreach-object {$_.groups[1].value} |
Select-Object -Unique
S'il vous plaît voir la mise à jour ci-dessus. Notez également que le texte provient d'un fichier.
Mis à jour pour les nouvelles exigences.
Cela a travaillé à l'exception de la gêne unique. Si je remplacis cela avec Select-Object -unique, cela fonctionnait parfaitement. Personnellement, je trouve cela plus clair que le [regex] code> réponses.
Édité pour corriger. Notez que les escapades anti-backslash des citations doubles semblent inutiles.
Ceci est exactement ce que je cherchais. Merci!
Si je suis vous suivant: mise à jour: p>
S'il vous plaît voir la mise à jour ci-dessus. Et cela peut-il être fait avec Select-String?
Selon vos commentaires: soyez prudent: $ {chemin de fichier} code> lit le fichier comme get-Content code>, Mais chemin de fichier code> doit être absolu! p> p>