Question
Recherche par select-string
- bordin
- Auteur du sujet
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 88
- Remerciements reçus 0
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
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.
- Jacques Barathon
- Hors Ligne
- Administrateur
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 15 ans 10 mois #3696
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Recherche par select-string
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
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.
- bordin
- Auteur du sujet
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 88
- Remerciements reçus 0
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
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.
- Jacques Barathon
- Hors Ligne
- Administrateur
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 15 ans 10 mois #3741
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Recherche par select-string
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
\"^$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.
- Jacques Barathon
- Hors Ligne
- Administrateur
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 15 ans 10 mois #3752
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Recherche par select-string
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
Janel
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.107 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Recherche par select-string