Question Recherche par select-string

Plus d'informations
il y a 15 ans 10 mois #3695 par bordin
Recherche par select-string a été créé par bordin
Bonjour à tous et par la même occasion bonne année 2009!
Voila mon problème!
je voudrais pour chaque ligne récupérée à partir d'un fichier source.txt récupéré la correspondance dans un fichier cible.txt.
J'arrive à trouver le match ainsi!
[code:1]
$lignesSource=Get-Content $FicSource
$lignesCible=Get-content $FicCible
foreach ($ligne in $lignesSource) {
$Match= Select-String -Pattern $ligne -Path $FicCible -SimpleMatch -Quiet
if ($Match -eq $true)
{Write-Host \"Match\"}
}[/code:1]
Mais lorsque je souhaite récupérer l'objet Matchinfo!
[code:1]
Select-String -Pattern $ligne -Path $FicCible -list -Simple
[/code:1]
ne me donne pas de résultat!
Merci de votre aide.
cdt

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 10 mois #3696 par Jacques Barathon
Curieux, ça marche très bien chez moi en essayant de reproduire ton exemple.

Par contre, je note au passage que ta ligne d'affectation du contenu de $FicCible à la variable $lignesCible ne sert à rien puisque select-string accède directement au fichier.

Pourrais-tu nous donner le code exact que tu utilises (ici tu nous cites deux versions de select-string différentes) et des extraits des fichiers texte?

Au cas où, je te donne une version alternative sans select-string qui permet au moins de vérifier la présence d'une ligne de $FicSource dans $FicCible:

[code:1]
$source = get-content $FicSource
$cible = get-content $FicCible
$source | foreach {
if ($cible -contains $_) {\"$_ : ok\"}
}
[/code:1]
Pour avoir plus d'infos (position, etc) il faut bien passer par select-string...

Janel

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 10 mois #3739 par bordin
Réponse de bordin sur le sujet Re:Recherche par select-string
Bonjour,
merci pour la réponse Janel! Bizare çà fonctionne maintenant.
Mon souci actuel c'est comment obtenir un match exact lors de la recherche d'une chaine dans un fichier.
Par exemple:
$FichierTmpHotesDomRef contient les lignes suivantes:
srvnom,192.168.1.1

$FichierTmpHotesDomLocal contient les lignes suivantes:
srvnom,192.168.1.1
srvnom-xyz,192.168.1.2

[code:1]
$objMatchInfo=Select-String -Pattern $NomHoteSource -Path $FicTmpHotesDomLocal -List -SimpleMatch
[/code:1]
quand $nomhotesource = srvnom il me renvoi srvnom,192.168.1.1 mais aussi srvnom-xyz,192.168.1.2

Quel paramètre donne le match le plus precis?

Merci

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 10 mois #3741 par Jacques Barathon
Si le nom d'ordinateur est systématiquement suivi d'une virgule, tu peux entrer la \"pattern\" suivante:

\"^$NomHoteSource,\"

Le ^ est là pour s'assurer qu'on prend bien le nom en début de ligne.

Janel

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 10 mois #3752 par Jacques Barathon
Petite précision: je viens de voir que ta ligne de commande a le paramètre -simplematch, enlève-le pour que la chaîne $NomHoteSource soit traitée comme une expression régulière. Tu aurais pu ajouter la virgule en gardant le -simplematch, mais tu n'aurais pas pu traiter le cas du début de ligne.

Janel

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.107 secondes
Propulsé par Kunena