Question
Recherche de mots (Résolu)
- didine
- Auteur du sujet
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 29
- Remerciements reçus 0
il y a 16 ans 6 mois #1128
par didine
NEWTON_
Recherche de mots (Résolu) a été créé par didine
Bonjour d'un authentique débutant
je souhaiterai faire un script qui permette
de localiser dans un texte
contenant 1400 fois
nom
type
....
....
end
toutes les occurences de
nom
...
...
... GR
end
en fait tous les groupes
commençant par \"nom\"
contenant \"Gr\"
et finissant par \"end\"
je n'arrive pas à m'en sortir
Merci<br><br>Message édité par: Arnaud, à: 16/10/07 13:20
je souhaiterai faire un script qui permette
de localiser dans un texte
contenant 1400 fois
nom
type
....
....
end
toutes les occurences de
nom
...
...
... GR
end
en fait tous les groupes
commençant par \"nom\"
contenant \"Gr\"
et finissant par \"end\"
je n'arrive pas à m'en sortir
Merci<br><br>Message édité par: Arnaud, à: 16/10/07 13:20
NEWTON_
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 16 ans 6 mois #1130
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Re:recherche de mots
Bonjour Newton et bienvenue sur le forum
Alors je te dis tout de suite, je ne suis pas un expert dans les expressions régulières, faut que je les travaille car c'est vraiment super puissant. Et c'est typiquement ce qu'il te faut.
Donc pour ton cas regarde comment fonctionne la commandelette \"Select-String\".
Juste pour te mettre un peu sur la voie:
[code:1]get-content monfichier.txt | Select-string \"Chaine à rechercher\"[/code:1]
Sachant que \"Chaine à rechercher\" peut être une expression régulière. Regarde dans l'aide de PowerShell : help about_regular_expression
Sinon je sais que Janel est un expert dans le domaine des expressions régulières et qu'il se fera un plaisir de t'aider...
Tiens nous au courant des tes pérégrinations.
Arnaud
Alors je te dis tout de suite, je ne suis pas un expert dans les expressions régulières, faut que je les travaille car c'est vraiment super puissant. Et c'est typiquement ce qu'il te faut.
Donc pour ton cas regarde comment fonctionne la commandelette \"Select-String\".
Juste pour te mettre un peu sur la voie:
[code:1]get-content monfichier.txt | Select-string \"Chaine à rechercher\"[/code:1]
Sachant que \"Chaine à rechercher\" peut être une expression régulière. Regarde dans l'aide de PowerShell : help about_regular_expression
Sinon je sais que Janel est un expert dans le domaine des expressions régulières et qu'il se fera un plaisir de t'aider...
Tiens nous au courant des tes pérégrinations.
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- didine
- Auteur du sujet
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 29
- Remerciements reçus 0
il y a 16 ans 6 mois #1144
par didine
NEWTON_
Réponse de didine sur le sujet Re:recherche de mots
Dur tres dur
pour
select-string -C:\11000028.txt -pattern \"[NOM]GR[END]\">C:\Test.txt
on me répond
Select-String : Impossible de convertir « System.String » en type « System.Management.Automation.SwitchParameter », req
uis par le paramètre « CaseSensitive ».
JANEL au secours
pour
select-string -C:\11000028.txt -pattern \"[NOM]GR[END]\">C:\Test.txt
on me répond
Select-String : Impossible de convertir « System.String » en type « System.Management.Automation.SwitchParameter », req
uis par le paramètre « CaseSensitive ».
JANEL au secours
NEWTON_
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 16 ans 6 mois #1145
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:recherche de mots
Je te propose deux techniques, l'une avec select-string et l'autre sans:
[code:1]
# avec select-string:
get-content test.txt -delimiter \"end\" | select-string \"GR$end\"
# sans select-string:
get-content test.txt -delimiter \"end\" | where {$_.split(\"`n\"«»)[-2].trim() -match \"GR$\"}[/code:1]
Dans les deux cas, le plus important est l'utilisation du paramètre -delimiter à la lecture du fichier. Ce paramètre permet de découper le fichier en blocs de chaînes selon un texte particulier, en l'occurrence \"end\" qui marque la fin de chaque bloc dans ton exemple.
J'avais écrit au sujet de ce paramètre sur mon blog:
janel.spaces.live.com/Blog/cns!9B5AA3F6FA0088C2!226.entry
C'était il y a un an quasiment jour pour jour, la v1 de PowerShell n'était pas encore sortie. Souvenirs, souvenirs...
Pour en revenir à ton besoin, les deux lignes de code ci-dessus sont sans doute imparfaites, mais elles te devraient te permettre d'attaquer le sujet dans le bon sens. A toi de voir quel nettoyage il reste à faire sur le résultat produit pour obtenir exactement ce que tu cherches. N'hésite pas à revenir sur ce forum pour continuer la réflexion.
Janel
[code:1]
# avec select-string:
get-content test.txt -delimiter \"end\" | select-string \"GR$end\"
# sans select-string:
get-content test.txt -delimiter \"end\" | where {$_.split(\"`n\"«»)[-2].trim() -match \"GR$\"}[/code:1]
Dans les deux cas, le plus important est l'utilisation du paramètre -delimiter à la lecture du fichier. Ce paramètre permet de découper le fichier en blocs de chaînes selon un texte particulier, en l'occurrence \"end\" qui marque la fin de chaque bloc dans ton exemple.
J'avais écrit au sujet de ce paramètre sur mon blog:
janel.spaces.live.com/Blog/cns!9B5AA3F6FA0088C2!226.entry
C'était il y a un an quasiment jour pour jour, la v1 de PowerShell n'était pas encore sortie. Souvenirs, souvenirs...
Pour en revenir à ton besoin, les deux lignes de code ci-dessus sont sans doute imparfaites, mais elles te devraient te permettre d'attaquer le sujet dans le bon sens. A toi de voir quel nettoyage il reste à faire sur le résultat produit pour obtenir exactement ce que tu cherches. N'hésite pas à revenir sur ce forum pour continuer la réflexion.
Janel
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.072 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Recherche de mots (Résolu)